发新话题
打印

51指令集

51指令集

指令格式         功能简述             字节数     周期 一、数据传送类指令 MOV   A, Rn         寄存器送累加器           1       1 MOV   Rn,A           累加器送寄存器             1       1 MOV   A ,@Ri         内部RAM单元送累加器         1       1 MOV   @Ri ,A         累加器送内部RAM单元         1       1 MOV   A ,#data       立即数送累加器           2       1 MOV   A ,direct       直接寻址单元送累加器         2       1 MOV   direct ,A       累加器送直接寻址单元         2       1 MOV   Rn,#data       立即数送寄存器             2       1 MOV   direct ,#data     立即数送直接寻址单元         3       2 MOV   @Ri ,#data     立即数送内部RAM单元         2       1 MOV   direct ,Rn       寄存器送直接寻址单元         2       2 MOV   Rn ,direct       直接寻址单元送寄存器         2       2 MOV   direct ,@Ri     内部RAM单元送直接寻址单元     2       2 MOV   @Ri ,direct     直接寻址单元送内部RAM单元     2       2 MOV   direct2,direct1   直接寻址单元送直接寻址单元     3       2 MOV   DPTR ,#data16     16位立即数送数据指针         3       2 MOVX A ,@Ri         外部RAM单元送累加器(8位地址)   1       2 MOVX @Ri ,A         累加器送外部RAM单元(8位地址)   1       2 MOVX A ,@DPTR       外部RAM单元送累加器(16位地址)   1       2 MOVX @DPTR ,A       累加器送外部RAM单元(16位地址)   1       2 MOVC A ,@A+DPTR     查表数据送累加器(DPTR为基址)   1       2 MOVC A ,@A+PC       查表数据送累加器(PC为基址)     1       2 XCH   A ,Rn         累加器与寄存器交换         1       1 XCH   A ,@Ri         累加器与内部RAM单元交换       1       1 XCHD A ,direct       累加器与直接寻址单元交换       2       1 XCHD A ,@Ri         累加器与内部RAM单元低4位交换   1       1 SWAP A             累加器高4位与低4位交换       1       1 POP   direct         栈顶弹出指令直接寻址单元     2       2 PUSH direct         直接寻址单元压入栈顶         2       2 二、算术运算类指令 ADD   A, Rn         累加器加寄存器             1       1 ADD   A, @Ri         累加器加内部RAM单元         1       1 ADD   A, direct       累加器加直接寻址单元         2       1 ADD   A, #data       累加器加立即数             2       1 ADDC A, Rn         累加器加寄存器和进位标志     1       1 ADDC A, @Ri         累加器加内部RAM单元和进位标志   1       1 ADDC A, #data       累加器加立即数和进位标志     2       1 ADDC A, direct       累加器加直接寻址单元和进位标志 2       1 INC   A             累加器加1               1       1 INC   Rn             寄存器加1               1       1 INC   direct         直接寻址单元加1           2       1 INC   @Ri           内部RAM单元加1             1       1 INC   DPTR           数据指针加1               1       2 DA   A             十进制调整               1       1 SUBB A, Rn         累加器减寄存器和进位标志     1       1 SUBB A, @Ri         累加器减内部RAM单元和进位标志   1       1 SUBB A, #data       累加器减立即数和进位标志     2       1 SUBB A, direct       累加器减直接寻址单元和进位标志 2       1 DEC   A             累加器减1               1       1 DEC   Rn             寄存器减1               1       1 DEC   @Ri           内部RAM单元减1             1       1 DEC   direct         直接寻址单元减1           2       1 MUL   AB             累加器乘寄存器B           1       4 DIV   AB             累加器除以寄存器B           1       4 三、逻辑运算类指令 ANL   A, Rn         累加器与寄存器             1       1 ANL   A, @Ri         累加器与内部RAM单元         1       1 ANL   A, #data       累加器与立即数             2       1 ANL   A, direct       累加器与直接寻址单元         2       1 ANL   direct, A       直接寻址单元与累加器         2       1 ANL   direct, #data     直接寻址单元与立即数         3       1 ORL   A, Rn         累加器或寄存器             1       1 ORL   A,@Ri         累加器或内部RAM单元         1       1 ORL   A,#data         累加器或立即数             2       1 ORL   A,direct       累加器或直接寻址单元         2       1 ORL   direct, A       直接寻址单元或累加器         2       1 ORL   direct, #data     直接寻址单元或立即数         3       1 XRL   A, Rn         累加器异或寄存器           1       1 XRL   A,@Ri         累加器异或内部RAM单元       1       1 XRL   A,#data         累加器异或立即数           2       1 XRL   A,direct       累加器异或直接寻址单元       2       1 XRL   direct, A       直接寻址单元异或累加器       2       1 XRL   direct, #data     直接寻址单元异或立即数       3       2 RL   A             累加器左循环移位           1       1 RLC   A             累加器连进位标志左循环移位     1       1 RR   A             累加器右循环移位           1       1 RRC   A             累加器连进位标志右循环移位     1       1 CPL   A             累加器取反               1       1 CLR   A             累加器清零               1       1 四、控制转移类指令类 ACCALL addr11         2KB范围内绝对调用           2       2 AJMP   addr11         2KB范围内绝对转移           2       2 LCALL addr16         2KB范围内长调用           3       2 LJMP   addr16         2KB范围内长转移           3       2 SJMP   rel           相对短转移               2       2 JMP   @A+DPTR       相对长转移               1       2 RET               子程序返回               1       2 RET1               中断返回                 1       2 JZ   rel           累加器为零转移             2       2 JNZ   rel           累加器非零转移             2       2 CJNE   A ,#data ,rel   累加器与立即数不等转移       3       2 CJNE   A ,direct ,rel   累加器与直接寻址单元不等转移   3       2 CJNE   Rn,#data ,rel   寄存器与立即数不等转移       3       2 CJNE   @Ri ,#data,rel RAM单元与立即数不等转移       3       2 DJNZ   Rn ,rel       寄存器减1不为零转移         2       2 DJNZ   direct ,rel     直接寻址单元减1不为零转移     3       2 NOP               空操作                 1       1 五、布尔操作类指令 MOV   C, bit         直接寻址位送C             2       1 MOV   bit, C         C送直接寻址位             2       1 CLR   C             C清零                   1       1 CLR   bit           直接寻址位清零             2       1 CPL   C             C取反                   1       1 CPL   bit           直接寻址位取反             2       1 SETB   C             C置位                   1       1 SETB   bit           直接寻址位置位             2       1 ANL   C, bit         C逻辑与直接寻址位           2       2 ANL   C, /bit       C逻辑与直接寻址位的反       2       2 ORL   C, bit         C逻辑或直接寻址位           2       2 ORL   C, /bit       C逻辑或直接寻址位的反       2       2 JC   rel           C为1转移                 2       2 JNC   rel           C为零转移               2       2 JB   bit,rel       直接寻址位为1转移           3       2 JNB   bit,rel       直接寻址为0转移

TOP

发新话题