以下表格列出了MCS-51单片机中常见指令的操作码助记符及其简要说明。通过这些指令,可以执行各种数据传送、算术运算、逻辑运算和程序控制操作:
操作码助记符 | 说明 | 操作数 |
---|---|---|
MOV | 数据传送 | MOV A, #data |
MOVC | 程序存储器数据传送 | MOVC A, @A+DPTR |
MOVX | 外部数据存储器数据传送 | MOVX A, @DPTR |
PUSH | 压栈 | PUSH direct |
POP | 弹栈 | POP direct |
ADD | 加法运算 | ADD A, Rn |
ADDC | 带进位加法运算 | ADDC A, Rn |
SUBB | 带借位减法运算 | SUBB A, Rn |
INC | 增加 | INC A |
DEC | 减少 | DEC A |
MUL | 乘法运算 | MUL AB |
DIV | 除法运算 | DIV AB |
DA | 十进制调整 | DA A |
CLR | 清零 | CLR A |
SETB | 置位 | SETB C |
CPL | 取反 | CPL A |
ANL | 逻辑与运算 | ANL A, Rn |
ORL | 逻辑或运算 | ORL A, Rn |
XRL | 逻辑异或运算 | XRL A, Rn |
RL | 左循环移位 | RL A |
RLC | 带进位左循环移位 | RLC A |
RR | 右循环移位 | RR A |
RRC | 带进位右循环移位 | RRC A |
SWAP | 交换累加器的高、低4位 | SWAP A |
NOP | 空操作 | NOP |
AJMP | 绝对跳转 | AJMP code addr |
LJMP | 长跳转 | LJMP code addr |
SJMP | 短跳转 | SJMP code addr |
JZ | 为0时跳转 | JZ code addr |
JNZ | 不为0时跳转 | JNZ code addr |
JC | 进位时跳转 | JC code addr |
JNC | 无进位时跳转 | JNC code addr |
JB | 位为1时跳转 | JB bit addr, code addr |
JNB | 位为0时跳转 | JNB bit addr, code addr |
JBC | 位为1时跳转并清零 | JBC bit addr, code addr |
CJNE | 不等时跳转 | CJNE A, direct, code addr |
DJNZ | 递减后不为0时跳转 | DJNZ Rn, code addr |
MOVX | 传送外部数据 | MOVX A, @DPTR |
MOVC | 传送代码存储器数据 | MOVC A, @A+DPTR |
RET | 返回 | RET |
RETI | 中断返回 | RETI |
CALL | 子程序调用 | CALL addr |
ACALL | 绝对子程序调用 | ACALL addr |
LCALL | 长子程序调用 | LCALL addr |