MCS-51 MCU指令系统(1)指令系统简介1.指令分类统计指令总数:111个操作码:255个助记符:48个单字节指令:49个单周期指令:64个双字节指令:48个两周期指令:45个三字节指令:17个四周期指令:2表3-1MCS-51指令分类数据传输指令(29)数据处理指令(48)位操作指令(12)程序控制指令(22) 1)内部传输(16)2)外部传输(4)3)查表(2)4)交换(5)5)堆栈操作(2)1)算术操作(24)2)逻辑操作(24)1)位传送(2)2)位置值(4)3)位逻辑(6)1)调用和返回(4)2)无条件传送(4)3)有条件传送(11)4)循环(2)5)否操作(1)2.符号约定Rn代表当前工作寄存器中的R0〜R7。 Direct表示直接寻址到内部单元的8位地址。 lRi表示8位地址指针lR0或lR1,该地址位于R0或R1中。 lDPTR表示一个16位地址指针,该地址位于DPTR中。 #data表示8位立即数。 #data16表示16位立即数。 lA +基地址表示A是索引寄存器。 addr11表示短传输的11位地址。 addr16表示长传输的16位地址。 rel表示相对传输的地址偏移量。位代表位地址。 (xx)代表XX单元的内容,例如(A)代表寄存器A的内容。((xx))代表以(xx)为指针指向的单元的内容。例如,(((DPTR))表示数据指针DPTR指向的单元的内容。 3.寻址模式表F1-1MCS-51指令系统寻址模式寻址模式寻址范围操作数形式示例寄存器寻址R0-R7,DPTRAcc,B,C(Cy位)寄存器名称MOVR3,AINCDPTR直接搜索地址内部RAM00H-7FH特殊功能寄存器80H-FFH 8位地址SFR名称MOV79H,SPPUSHP1直接位寻址内部RAM位寻址区(20H-2FH):位地址00H-7FH可寻址的特殊功能寄存器:位地址80H -F7H8位地址位名称SFR名称。位置序列MOVC,78HCLRTR0ANLC,P0.1寄存器间接寻址和表示操作数的数据指针。内部RAM00H-7FH @ R0 @ R1MOVA,@ R0ADDA,@ R100H-FFH / 0000H-FFFFH @ R0,@ R1 @ DPTRMOVXA,@ R0MOVX @ DPTR,立即寻址8位(二进制)立即数,#dataMOVA,#116位(二进制)立即数#data16MOVDPTR,#2000H基地址加上通过索引实际地址=基地址+索引偏移量而得到的索引寻址读取程序存储器A提供的8位无符号索引偏移量基址由PC或DPTR @ A + DPTR提供@ A + PCMOVCA,@ A + DPTRMOVCA,@ A + PC传输地址的寻址方式相对寻址传输地址=基地址+相对偏移rel基地址是指令提取最后一个PC值是8位带符号数rel在指令relSJMP0EBH标签SJMPLOOP中;标签直接寻址短传输,指令直接给出11位地址Addr11或标签AJMPNEW;标签长传输,指令直接给出16位地址Addr16或标签LJMP2010H