文章目录
前言
- 89C51/S51系统指令可分为5大类:
28条 数据传送指令
24条 算术运算指令
25条 逻辑运算及位移指令
17条 控制转移指令
17条 位操作指令或布尔操作
此文章总结各种指令是方便学习单片机的同学查询指令
此文章分别讨论5大类系统指令的助记符、含义、用法等属性。
本文章参考李朝青等人的《单片机原理及技术接口》。
数据传送指令
MOV
- 助记符:MOV
- 英文全称:Move
- 含义:对内部数据寄存器(内部RAM)和特殊功能寄存器(SFR)进行数据传送
MOVC
- 助记符:MOVC
- 英文全称:Move Code
- 含义:读取程序寄存器(ROM,包含内部ROM和外部ROM)的数据表格的数据进行传送
MOVX
- 助记符:MOVX
- 英文全称:Move Extenal RAM
- 含义:对外部数据寄存器(外部RAM)的数据传送
XCH
- 助记符:XCH
- 英文全称:Exchange
- 含义:字节交换
XCHD
- 助记符:XCHD
- 英文全称:Exchange low-order Digit
- 含义:低半字节交换
PUSH
- 助记符:PUSH
- 英文全称:Push onto Stack
- 含义:入栈
POP
- 助记符:POP
- 英文全称:Pop from Stack
- 含义:出栈
运算符指令
ADD
- 助记符:ADD
- 英文全称:Addition
- 含义:加法
ADDC
- 助记符:ADDC
- 英文全称:Add with Carry
- 含义:带进位加法
SUBB
- 助记符:SUBB
- 英文全称:Sub tract with Borrow
- 含义:带借位的减法
MUL
- 助记符:MUL
- 英文全称:Multiplication
- 含义:乘法
DIV
- 助记符:DIV
- 英文全称:Division
- 含义:除法
DA
- 助记符:DA
- 英文全称:Decimal Adjust
- 含义:十进制调整
INC
- 助记符INC
- 英文全称:Increment
- 含义:加一
DEC
- 助记符
- 英文全称:Decrement
- 含义:减一
逻辑运算指令
ANL
- 助记符:ANL
- 英文全称:AND Logic
- 含义:逻辑与
- 作用:可以使某些位置0(清零)
ORL
- 助记符:ORL
- 英文全称:OR Logic
- 含义:逻辑或
- 作用:可以使某些位置1
XRL
- 助记符:XRL
- 英文全称:Exclusive - OR Logic
- 含义:逻辑异或
- 作用:可以使某些位置取反
CLR
- 助记符:CLR
- 英文全称:Clear
- 含义:清零
CPL
- 助记符:CPL
- 英文全称:Complement
- 含义:取反
RL
- 助记符:RL
- 英文全称:Rotate Left
- 含义:循环左移
RR
- 助记符:RR
- 英文全称:Rotate Right
- 含义:循环右移
RLC
- 助记符:RLC
- 英文全称:Rotate Left through the Carry flag
- 含义:带进位的循环左移
RRC
- 助记符:RRC
- 英文全称:Rotate Right through the Carry flag
- 含义:带进位的循环右移
SWAP
- 助记符:SWAP
- 英文全称:Swap
- 含义:一个字节内低四位与高四位交换
控制转移类指令
ACALL
- 助记符:ACALL
- 英文全称:Absolute subroutine Call
- 含义:子程序绝对调用
LCALL
- 助记符:LCALL
- 英文全称:Long subroutine Call
- 含义:子程序长调用
RET
- 助记符:RET
- 英文全称:Return from subroutine
- 含义:子程序返回
RETI
- 助记符:RETI
- 英文全称:Return from Interruption
- 含义:中断返回
SJMP
- 助记符:SJMP
- 英文全称:Short Jump
- 含义:短转移
LJMP
- 助记符:LJMP
- 英文全称:Long Jump
- 含义:长转移
AJMP
- 助记符:AJMP
- 英文全称:Absolute Jump
- 含义:绝对转移
CJNE
- 助记符:CJNE
- 英文全称:Compare Jump of Not Equal
- 含义:比较不相等则转移
DJNZ
- 助记符:DJNZ
- 英文全称:Decrement Jump if Not Zero
- 含义:减一后不为0则转移
JZ
- 助记符:JZ
- 英文全称:Jump if Zero
- 含义:结果为0,则转移
JNZ
- 助记符:JNZ
- 英文全称:Jump if Not Zero
- 含义:结果不为0,则转移
JC
- 助记符:JC
- 英文全称:Jump if the Carry flag is set
- 含义:有进位,则转移
JNC
- 助记符:JNC
- 英文全称:Jump if Not Carry
- 含义:无进位,则转移
JB
- 助记符:JB
- 英文全称:Jump if the Bit is set
- 含义:位为一,则转移
JNB
- 助记符:JNB
- 英文全称:Jump if the Bit is Not set
- 含义:位为零,则转移
JBC
- 助记符:JBC
- 英文全称:Jump if the Bit is set and Clear the bit
- 含义:位为一,则转移,并清楚该位
NOP
- 助记符:NOP
- 英文全称:No Operation
- 含义:空操作
由本人水平有限,文章难免有错误,望告知