数据传送指令
指令 | 功能 | 格式 |
---|---|---|
MOV | 数据传送 | MOV A, #data |
MOV | 数据传送 | MOV A, direct |
MOV | 数据传送 | MOV A, @Ri |
MOV | 数据传送 | MOV A, Rn |
MOV | 数据传送 | MOV direct, A |
MOV | 数据传送 | MOV direct, #data |
MOV | 数据传送 | MOV direct, direct |
MOV | 数据传送 | MOV direct, @Ri |
MOV | 数据传送 | MOV direct, Rn |
MOV | 数据传送 | MOV @Ri, A |
MOV | 数据传送 | MOV @Ri, direct |
MOV | 数据传送 | MOV @Ri, #data |
MOV | 数据传送 | MOV Rn, A |
MOV | 数据传送 | MOV Rn, direct |
MOV | 数据传送 | MOV Rn, #data |
MOVC | 代码存储器数据传送 | MOVC A, @A+DPTR |
MOVC | 代码存储器数据传送 | MOVC A, @A+PC |
MOVX | 外部数据存储器数据传送 | MOVX A, @DPTR |
MOVX | 外部数据存储器数据传送 | MOVX A, @Ri |
MOVX | 外部数据存储器数据传送 | MOVX @DPTR, A |
MOVX | 外部数据存储器数据传送 | MOVX @Ri, A |
PUSH | 数据压栈 | PUSH direct |
POP | 数据弹栈 | POP direct |
XCH | 数据交换 | XCH A, direct |
XCH | 数据交换 | XCH A, @Ri |
XCH | 数据交换 | XCH A, Rn |
XCHD | 数据交换 | XCHD A, @Ri |
算术运算指令
指令 | 功能 | 格式 |
---|---|---|
ADD | 加法运算 | ADD A, #data |
ADD | 加法运算 | ADD A, direct |
ADD | 加法运算 | ADD A, @Ri |
ADD | 加法运算 | ADD A, Rn |
ADDC | 带进位加法运算 | ADDC A, #data |
ADDC | 带进位加法运算 | ADDC A, direct |
ADDC | 带进位加法运算 | ADDC A, @Ri |
ADDC | 带进位加法运算 | ADDC A, Rn |
SUBB | 带借位减法运算 | SUBB A, #data |
SUBB | 带借位减法运算 | SUBB A, direct |
SUBB | 带借位减法运算 | SUBB A, @Ri |
SUBB | 带借位减法运算 | SUBB A, Rn |
INC | 增加 | INC A |
INC | 增加 | INC direct |
INC | 增加 | INC @Ri |
INC | 增加 | INC Rn |
INC | 增加 | INC DPTR |
DEC | 减少 | DEC A |
DEC | 减少 | DEC direct |
DEC | 减少 | DEC @Ri |
DEC | 减少 | DEC Rn |
MUL | 乘法运算 | MUL AB |
DIV | 除法运算 | DIV AB |
DA | 十进制调整 | DA A |
逻辑运算指令
指令 | 功能 | 格式 |
---|---|---|
ANL | 逻辑与运算 | ANL A, #data |
ANL | 逻辑与运算 | ANL A, direct |
ANL | 逻辑与运算 | ANL A, @Ri |
ANL | 逻辑与运算 | ANL A, Rn |
ANL | 逻辑与运算 | ANL direct, A |
ANL | 逻辑与运算 | ANL direct, #data |
ORL | 逻辑或运算 | ORL A, #data |
ORL | 逻辑或运算 | ORL A, direct |
ORL | 逻辑或运算 | ORL A, @Ri |
ORL | 逻辑或运算 | ORL A, Rn |
ORL | 逻辑或运算 | ORL direct, A |
ORL | 逻辑或运算 | ORL direct, #data |
XRL | 逻辑异或运算 | XRL A, #data |
XRL | 逻辑异或运算 | XRL A, direct |
XRL | 逻辑异或运算 | XRL A, @Ri |
XRL | 逻辑异或运算 | XRL A, Rn |
XRL | 逻辑异或运算 | XRL direct, A |
XRL | 逻辑异或运算 | XRL direct, #data |
CLR | 清零 | CLR A |
CLR | 清零 | CLR C |
CLR | 清零 | CLR bit |
SETB | 置位 | SETB C |
SETB | 置位 | SETB bit |
CPL | 取反 | CPL A |
CPL | 取反 | CPL C |
CPL | 取反 | CPL bit |
RL | 左循环移位 | RL A |
RLC | 带进位左循环移位 | RLC A |
RR | 右循环移位 | RR A |
RRC | 带进位右循环移位 | RRC A |
SWAP | 交换累加器的高、低4位 | SWAP A |
控制转移指令
指令 | 功能 | 格式 |
---|---|---|
ACALL | 绝对子程序调用 | ACALL addr11 |
LCALL | 长子程序调用 | LCALL addr16 |
RET | 返回 | RET |
RETI | 中断返回 | RETI |
AJMP | 绝对跳转 | AJMP addr11 |
LJMP | 长跳转 | LJMP addr16 |
SJMP | 短跳转 | SJMP rel |
JZ | 为0时跳转 | JZ rel |
JNZ | 不为0时跳转 | JNZ rel |
JC | 进位时跳转 | JC rel |
JNC | 无进位时跳转 | JNC rel |
JB | 位为1时跳转 | JB bit, rel |
JNB | 位为0时跳转 | JNB bit, rel |
JBC | 位为1时跳转并清零 | JBC bit, rel |
CJNE | 不等时跳转 | CJNE A, #data, rel |
CJNE | 不等时跳转 | CJNE A, direct, rel |
CJNE | 不等时跳转 | CJNE Rn, #data, rel |
CJNE | 不等时跳转 | CJNE @Ri, #data, rel |
DJNZ | 不为0时减1并跳转 | DJNZ direct, rel |
中断控制指令
指令 | 功能 | 格式 |
---|---|---|
EI | 允许中断 | EI |
DI | 禁止中断 | DI |
参考资料
- Intel MCS-51 Microcontroller Family User’s Manual
- 8051 Instruction Set Manual