第三章 MCS-51单片机指令系统
(一) 指令系统简介
1. 指令分类统计
指令总数:111条 操作码:255个 助记符:48个

单字节指令:49条 单周期指令:64条
双字节指令:48条 双周期指令:45条
三字节指令:17条 四周期指令:2条
表3-1 MCS-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 表示相对转移的地址偏移量。
ê bit 表示位地址。
ê (xx) 表示XX单元的内容,如(A)表示寄存器A的内容。
ê ((xx)) 表示以(xx)为指针,所指单元的内容。例如,
((DPTR))表示数据指针DPTR所指单元的内容。
转载须保留地址:http://www.51hei.com/mcu/279.html
3. 寻址方式
表 F1-1 MCS-51指令系统的寻址方式
寻 址 方 式 | 寻 址 范 围 | 操作数形式 | 举 例 |
寄存器 寻址 | R0-R7 ,DPTR Acc,B,C(Cy 位) | 寄存器名 | MOV R3,A INC DPTR |
直接 寻址 | 内部RAM 00H-7FH 特殊功能寄存器 80H-FFH | 8位地址 SFR名 | MOV 79H,SP PUSH P1 |
直接 位寻址 | 内部RAM位寻址区 (20H-2FH): 位地址00H-7FH 可寻址的特殊功能寄存器: 位地址 80H-F7H | 8位地址 位名 SFR名.位序 | MOV C,78H CLR TR0 ANL C,P0.1 |
寄存器 间接 寻址 | 以数据指针表示操作数。 内部RAM 00H-7FH | @R0 @R1 | MOV A, @R0 ADD A, @R1 |
外部RAM或I/O端口 00H-FFH / 0000H-FFFFH | @R0 ,@R1@DPTR | MOVX A, @R0 MOVX @DPTR,A |
立即 寻址 | 8位(二进制)立即数, | # data | MOV A,# 1 |
| 16位(二进制)立即数 | # data16 | MOV DPTR,#2000H |
基址 加 变址 寻址 | 以变址方式读程序存贮器 实际地址=基址+变址偏移量 8位无符号变址偏移量由A提供 基址由PC或DPTR提供 | @A+DPTR @A+PC | MOVC A,@A+DPTR MOVC A,@A+PC |
| 转 移 地 址 的 寻 址 方 式 |
相对 寻址 | 转移地址= 基址+相对偏移量rel 基址为取指令后的PC 值 8位有符号数rel在指令中给出 | rel | SJMP 0EBH |
| 标号 | SJMP LOOP ; 标号 |
直接 寻址 | 短转移,指令直接给出11位地址 | Addr11或标号 | AJMP NEW ; 标号 |
| 长转移,指令直接给出16位地址 | Addr16或标号 | LJMP 2010H |
| | | | |