MCS-51单片机指令系统总结(自学笔记)

MCS-51单片机指令系统共111条指令,按功能分为五类:
(1)数据传送类 28
(2)算术操作类 24
(3)逻辑运算类 25
(4)控制转移类 17
(5)位操作类 17

(1)数据传送类 28
MOV A,Rn ;寄存器传送到累加器
MOV A,direct ;直接地址传送到累加器
MOV A,@Ri ;累加器传送到外部RAM(8 地址)
MOV A,#data ;立即数传送到累加器
MOV Rn,A ;累加器传送到寄存器
MOV Rn,direct ;直接地址传送到寄存器
MOV Rn,#data ;累加器传送到直接地址
MOV direct,Rn ;寄存器传送到直接地址
MOV direct,direct ;直接地址传送到直接地址
MOV direct,A ;累加器传送到直接地址
MOV direct,@Ri ;间接RAM 传送到直接地址
MOV direct,#data ;立即数传送到直接地址
MOV @Ri,A ;直接地址传送到直接地址
MOV @Ri,direct ;直接地址传送到间接RAM
MOV @Ri,#data ;立即数传送到间接RAM
MOV DPTR,#data16 ;16 位常数加载到数据指针
MOVC A,@A+DPTR ;代码字节传送到累加器
MOVC A,@A+PC ;代码字节传送到累加器
MOVX A,@Ri ;外部RAM(8 地址)传送到累加器
MOVX A,@DPTR ;外部RAM(16 地址)传送到累加器
MOVX @Ri,A ;累加器传送到外部RAM(8 地址)
MOVX @DPTR,A ;累加器传送到外部RAM(16 地址)
PUSH direct ;直接地址压入堆栈
POP direct ;直接地址弹出堆栈
XCH A,Rn ;寄存器和累加器交换
XCH A, direct ;直接地址和累加器交换
XCH A, @Ri ;间接RAM 和累加器交换
XCHD A, @Ri ;间接RAM 和累加器交换低4 位字节

(2)算术操作类 24
INC A ;累加器加1
INC Rn ;寄存器加1
INC direct ;直接地址加1
INC @Ri ;间接RAM 加1
INC DPTR ;数据指针加1
DEC A ;累加器减1
DEC Rn ;寄存器减1
DEC direct ;直接地址减1
DEC @Ri ;间接RAM 减1
MUL AB ;累加器和B 寄存器相乘结果放在B(H),A(D)
DIV AB ;累加器除以B 寄存器,商->A,余数->B
DA A ;累加器十进制调整
ADD A,Rn ;寄存器与累加器求和
ADD A,direct ;直接地址与累加器求和
ADD A,@Ri ;间接RAM 与累加器求和
ADD A,#data ;立即数与累加器求和
ADDC A,Rn ;寄存器与累加器求和(带进位)
ADDC A,direct ;直接地址与累加器求和(带进位)
ADDC A,@Ri ;间接RAM 与累加器求和(带进位)
ADDC A,#data ;立即数与累加器求和(带进位)
SUBB A,Rn ;累加器减去寄存器(带借位)
SUBB A,direct ;累加器减去直接地址(带借位)
SUBB A,@Ri ;累加器减去间接RAM(带借位)
SUBB A,#data ;累加器减去立即数(带借位)

(3)逻辑运算类 25
ANL A,Rn ;寄存器“与”到累加器
ANL A,direct ;直接地址“与”到累加器
ANL A,@Ri ;间接RAM“与”到累加器
ANL A,#data ;立即数“与”到累加器
ANL direct,A ;累加器“与”到直接地址
ANL direct, #data ;立即数“与”到直接地址
ORL A,Rn ;寄存器“或”到累加器
ORL A,direct ;直接地址“或”到累加器
ORL A,@Ri ;间接RAM“或”到累加器
ORL A,#data ;立即数“或”到累加器
ORL direct,A ;累加器“或”到直接地址
ORL direct, #data ;立即数“或”到直接地址
XRL A,Rn ;寄存器“异或”到累加器
XRL A,direct ;直接地址“异或”到累加器
XRL A,@Ri ;间接RAM“异或”到累加器
XRL A,#data ;立即数“异或”到累加器
XRL direct,A ;累加器“异或”到直接地址
XRL direct, #data ;立即数“异或”到直接地址
CLR A ;累加器清零
CPL A ;累加器求反
RL A ;累加器循环左移
RLC A ;带进位累加器循环左移
RR A ;累加器循环右移
RRC A ;带进位累加器循环右移
SWAP A ;累加器高、低4 位交换

(4)控制转移类 17
JMP @A+DPTR ;相对DPTR 的无条件间接转移
JZ rel ;累加器为0 则转移
JNZ rel ;累加器为1 则转移
CJNE A,direct,rel ;比较直接地址和累加器,不相等转移
CJNE A,#data,rel ;比较立即数和累加器,不相等转移
CJNE Rn,#data,rel ;比较寄存器和立即数,不相等转移
CJNE @Ri,#data,rel ;比较立即数和间接RAM,不相等转移
DJNZ Rn,rel ;寄存器减1,不为0 则转移
DJNZ direct,rel ;直接地址减1,不为0 则转移
NOP ;空操作,用于短暂延时
ACALL add11 ;绝对调用子程序
LCALL add16 ;长调用子程序
RET ;从子程序返回
RETI ;从中断服务子程序返回
AJMP add11 ;无条件绝对转移
LJMP add16 ;无条件长转移
SJMP rel ;无条件相对转移

(5)位操作类 17
CLR ;清进位位
CLR bit ;清直接寻址位
SETB C ;置位进位位
SETB bit ;置位直接寻址位
CPL C ;取反进位位
CPL bit ;取反直接寻址位
ANL C,bit ;直接寻址位“与”到进位位
ANL C,/bit ;直接寻址位的反码“与”到进位位
ORL C,bit ;直接寻址位“或”到进位位
ORL C,/bit ;直接寻址位的反码“或”到进位位
MOV C,bit ;直接寻址位传送到进位位
MOV bit, C ;进位位位传送到直接寻址
JC rel ;如果进位位为1 则转移
JNC rel ;如果进位位为0 则转移
JB bit,rel ;如果直接寻址位为1 则转移
JNB bit,rel ;如果直接寻址位为0 则转移
JBC bit,rel ;直接寻址位为1 则转移并清除该位

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值