MCS-51单片机指令系统 (转载)

本文详细介绍了MCS-51单片机的指令系统,包括指令分类、符号约定、寻址方式、数据传送指令、算术运算指令、逻辑运算指令、位处理指令和程序控制指令。数据传送指令涵盖了内部和外部数据的移动,如MOV、MOVX和MOVC。算术运算指令包括加法、减法和乘除法等。位处理指令如ANL、ORL和CPL等则提供了位逻辑操作。程序控制指令如AJMP、LJMP、SJMP等实现了程序流程的控制。此外,文章还讲解了汇编语言程序设计的基本结构和方法,包括顺序结构、分支结构、循环结构、子程序结构以及程序调试和优化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MCS-51单片机指令系统    (转载)
(一) 指令系统简介
1. 指令分类统计
指令总数:111条  操作码:255个  助记符:48个
单字节指令:49条                单周期指令:64条
 双字节指令:48条          双周期指令:45条
三字节指令:17条       四周期指令:2条

表3-1 MCS-51指令分类
数据传送指令(29) 数据处理指令(48) 位操作指令(12) 程序控制指令(22)
1) 内部传送(16)
2) 外部传送(4)
3) 查表     (2)
4) 交换     (5)
5) 栈操作   (2) 1) 算术运算(24)
2) 逻辑运算(24) 1) 位传送(2)
2) 位置值(4)
3) 位逻辑(6) 1) 调用及返回(4)
2) 无条件转移(4)
3) 条件转移  (11)
4) 循环       (2)
5) 空操作     (1)

2. 符号约定
 Rn          表示当前工作寄存器中的R0R7
 Direct      表示对内部单元直接寻址的8位地址
 Ri        表示8位地址指针R0或R1,地址在R0或R1中。
 DPTR      表示16位地址指针,地址在DPTR中。
 #data       表示8位立即数。
 #data16      表示16位立即数。
 A+基地址  表示以A为变址寄存器。
 addr11      表示短转移的11位地址。
 addr16      表示长转移的16位地址。
 rel         表示相对转移的地址偏移量。
 bit         表示位地址。
 (xx)         表示XX单元的内容,如(A)表示寄存器A的内容。
 ((xx))       表示以(xx)为指针,所指单元的内容。例如,
                  ((DPTR))表示数据指针DPTR所指单元的内容。
3. 寻址方式
表 F1-1  MCS-51指令系统的寻址方式
寻 址
方 式 
寻 址 范 围 
操作数形式 
举  例
寄存器
寻址 R0-R7 ,DPTR 
Acc,B,C(Cy 位) 
寄存器名 MOV  R3,A
INC  DPTR
直接
寻址   内部RAM     00H-7FH
特殊功能寄存器  80H-FFH 8位地址
SFR名 MOV  79H,SP
PUSH  P1

 直接
位寻址 内部RAM位寻址区 (20H-2FH):
  位地址00H-7FH
可寻址的特殊功能寄存器:
  位地址  80H-F7H 8位地址
位名
SFR名.位序 MOV  C,78H 
CLR  TR0
ANL  C,P0.1

寄存器
间接
寻址   以数据指针表示操作数。
  内部RAM  00H-7FH @R0
@R1 MOV  A, @R0 
ADD  A, @R1
   外部RAM或I/O端口
  00H-FFH / 0000H-FFFFH @R0 ,@R1@DPTR MOVX  A, @R0
MOVX  @DPTR,A
立即
寻址   8位(二进制)立即数, # data MOV  A,# 1
   16位(二进制)立即数 # data16 MOV  DPTR,#2000H
基址

变址
寻址      以变址方式读程序存贮器
 实际地址=基址+变址偏移量
 8位无符号变址偏移量由A提供
 基址由PC或DPTR提供 @A+DPTR
@A+PC MOVC  A,@A+DPTR
MOVC  A,@A+PC

转 移 地 址 的 寻 址 方 式
相对
寻址 转移地址= 基址+相对偏移量rel
 基址为取指令后的PC 值 
8位有符号数rel在指令中给出 rel SJMP  0EBH
  标号 SJMP  LOOP   标号
直接
寻址 短转移,指令直接给出11位地址 Addr11或标号 AJMP  NEW   标号
 长转移,指令直接给出16位地址 Addr16或标号 LJMP  2010H
(二) 数据传送指令
表 3-2  数据传送指令
操作码 目标操作数 可选择的源操作数 说         明
MOV A
Rn
direct
@Ri
DPTR  Rn;direct;@Ri;# data
 A;direct;# data
 A;Rn;direct;@Ri;# data
 A;direct;# data
 # data16  内部传送
 内部传送
 内部传送
 内部传送
 数据指针赋值
PUSH
POP 隐含(SP)
direct  direct
 隐含(SP)  压栈,只能用直接寻址
 退栈,只能用直接寻址
XCH A  Rn; direct; @Ri  内部交换
XCHD
SWAP A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值