导图社区 微机原理与接口技术
海洋学院《微机原理与接口技术》课程知识点分享!本思维导图主要讲解8051指令,包含数据传送类、算数运算类、逻辑操作类、控制转移类、位操作类。简要列举了各指令的形式与使用方法,供大家参考学习使用!
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
民法分论
8051指令(111)
数据传送类(29)
除了P外,不影响其他标志位
内部RAM数据传送(16)
五个来源操作数:A、Rn、direct、@Ri、#data
MOV A,direct
MOV A,Rn
MOV A,@Ri
MOV A,#data
累加器A赋值指令
MOV direct2,direct1
MOV direct,A
MOV direct,Rn
MOV direct,@Rn
内存单元赋值指令
MOV Rn,direct
MOV Rn,#data
MOV Rn,A
工作寄存器赋值指令
MOV @Ri,direct
MOV @Ri,#data
MOV @Ri,A
给Ri间接寻址的内存单元赋值
MOV DPTR,#data16
DPTR赋值;是唯一一条16位立即数传送指令
外部RAM数据传送(4)
外部RAM只能采用寄存器间接寻址方式,间接寻址寄存器为Ri和DPTR。
MOVX A,@Ri
MOVX A,@DPTR
外部RAM单元中的内容送到A;低256字节可以用@Ri,而其他只能用@DPTR
MOVX @Ri,A
MOVX @DPTR,A
A中的内容送到外部RAM
查表指令(2)
从ROM中读取数据,通常是对存放在ROM中的数据表个进行查找读取,目的操作数是累加器A
MOVC A,@A+DPTR
MOVC A,@A+PC
堆栈操作指令(2)
PUSH direct
先修改SP指针,再入栈
POP direct
先出栈,再修改SP指针
数据交换指令(5)
目的操作数均为A
XCH A,Rn
XCH A,@Ri
XCH A,direct
XCHD A,@Ri
A的低半字节与Ri间接寻址的内部RAM单元内容的低半字节互换
SWAP A
A的高低字节互换
算数运算类(24)
不带进位的加法指令(4)
进位标志位C不影响运算
ADD A,#data
ADD A,direct
ADD A,Rn
ADD A,@Ri
带进位的加法指令(4)
源操作数、A和当前Cy值相加,结果存到A中
ADDC A,#data
ADDC A,direct
ADDC A,Rn
ADDC A,@Ri
带借位的减法指令(4)
没有不带借位的减法指令;需要不带借位的减法时要手动置零Cy
SUBB A,#data
SUBB A,direct
SUBB A,Rn
SUBB A,@Ri
乘法指令(1)
MUL AB
结果高8位存于B中,低8位存于A中;若B==0,则OV置1;若B!=0,则OV清零
除法指令(1)
DIV AB
A÷B,结果商存于A中,余数存于B中;若除数B的内容为0,则OV置1,;若除数B!=0,则OV清零。
加1指令(5)
对P产生影响,不影响其他标志位。
INC A
INC Rn
INC @Ri
INC direct
INC DPTR
减1指令(4)
与加1指令相比,没有DPTR-1指令。要实现DPTR-=1时要自己编写程序实现
DEC A
DEC Rn
DEC @Ri
DEC direct
十进制调整指令(1)
只能用在ADD和ADDC之后,对相加后存放在A中的结果进行修正
DA A
逻辑操作类(24)
逻辑与操作(6)
ANL A,direct
ANL A,Rn
ANL A,@Ri
ANL A,#data
ANL direct,A
ANL direct,#data
逻辑或操作(6)
ORL A,direct
ORL A,Rn
ORL A,@Ri
ORL A,#data
ORL direct,A
ORL direct,#data
逻辑异或(6)
XRL A,direct
XRL A,Rn
XRL A,@Ri
XRL A,#data
XRL direct,A
XRL direct,#data
累加器清零和取反(2)
CLR A
CPL A
循环位移(4)
累加器A中的数据位循环左移
RL A
RR A
RLC A
RRC A
控制转移类(17)
无条件转移(4)
SJMP rel
相对转移指令,
AJMP addr11
LJMP addr16
JMP @A+DPTR
条件转移(8)
JZ rel
A=0转移
JNZ rel
A!=0转移
CJNE A,direct,rel
CJNE A,#data,rel
CJNE Rn,#data,rel
CJNE @Ri,@data,rel
两操作数不相等转移
DJNZ Rn,rel
DJNZ direct,rel
操作数-=1,之后若不等于零,程序转移
子程序调用和返回(4)
LCALL addr16
ACALL addr11
调用程序
RET
调用子程序后使用
RETI
相比RET,还会清除中断”优先级状态触发器“。在调用中断子程序的最后使用
空操作(1)
NOP
空操作,消耗一个机器周期,一般用来作延时程序
位操作类(17)
位数据传送(2)
MOV C,bit
MOV bit,C
位状态设置(6)
CLR C
CLR bit
SETB C
SETB bit
CPL C
CPL bit
位逻辑运算(4)
ANL C,bit
ANL C,/bit
ORL C,bit
ORL C,/bit
位转移(5)
JC rel
Cy=1转移
JNC rel
Cy=0转移
JB bit,rel
bit=1转移
JNB bit,rel
bit=0转移
JBC bit,rel
bit=1时bit清零并转移