- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 MCS-51 指令系统 Instruction Set
指令系统概述
MCS-51 指令的寻址方式
MCS-51 指令系统介绍
3.1 指令系统概述
指令——计算机能够识别和执行的命令。
指令系统——指令的集合或全体,因机器而异。
指令的三种表示形式
二进制形式——直接为CPU执行
16进制形式——阅读和书写
汇编形式——编写程序。
二进制形式
16进制形式
汇编形式00100100 10000000 740AH
2404H
80FEH
MOV A,#0AH
ADD A,#04H
SJMP $
MCS-51指令系统
51系列单片机指令集含有111条指令
按指令所占字节数分类:
单字节(49条);双字节(46条);3字节(16条)
按指令执行时间分类:
单周期(64条);双周期(45条);4周期(2条)
按指令的功能分类:
数据传送类(29条);算术运算类(24条);
逻辑运算及移位类(24);控制转移类(17条);
位操作类(17条)
MCS-51 指令格式
方括符[ ]表示可选项
标号代表指令所在地址,1-8个字母/数字,“:”结尾
操作码就是指令功能助记符,指令实体
目的操作数
源操作数
注释,以 “ ; ” 开头
LOOP: MOV A, R0 ;将R0的内容送A
[标号:]操作码 [目的操作数][,源操作数][;注释]
MCS-51 指令中所用符号说明
Rn —— R0~R7中的一个
#data —— 8位立即数
#data16 —— 16位立即数
direct —— 8位直接地址
@Ri—— R0或R1,可以间接寻址
@DPTR —— 可按DPTR中地址对外部存储器寻址
bit —— 8位位地址
addr11 —— 11位目标地址
addr16 —— 16位目标地址
rel—— 8位地址偏移量
$—— 当前指令的地址
3.2 MCS-51 指令的寻址方式
寻址方式:用何种方式寻找参与运算的操作数或操作数的真实地址。
MCS-51单片机有七种寻址方式:
立即寻址
直接寻址
寄存器寻址
寄存器间接寻址
变址寻址(基址寄存器+变址寄存器间接寻址)
相对寻址
位寻址
3.2.1 立即寻址Immediate Addressing
指令直接给出一个操作数,它紧跟在操作码后,通常称它为立即数(8位或16位)。
指令形式:
特点:指令码中含有操作数本身
例如:
MOV A, #30H ;A ← #30H
MOV DPTR, #8000H ;DPTR ← #8000H
操作码
立即数
3.2.2 直接寻址
指令直接给出操作数所在存储单元的地址,它紧跟在操作码后。
此方式是访问专用寄存器的唯一方式(80H ~ FFH)
也可访问内部RAM的低128(8052的256)字节
指令形式:
特点:指令码中含有操作数地址,机器根据该地址寻找 操作数。
例如:
MOV A, 30H ; A ←(30H)
ANL 30H, #30H ;(30H)←(30H)∧#30H
MOV 50H, 30H ;(50H)←((30H))
操作码
操作数地址
操作数地址
立即数
操作码
目的操作数地址
源操作数地址
操作码
3.2.3 寄存器寻址
指令选定的寄存器内容就是实际操作数,寄存器可为:
R0~R7,由RS1、RS2两位的值选定工作寄存器区
A、B、CY(位),DPTR
指令形式:
特点:指令码中含有操作数地址所在的寄存器号,根据 该寄存器号可以找到操作数。
例如:
MOV A, R3 ;A ←(R3)
ANL A, #30H
MOV R0, 30H
操作码
操作码
立即数
操作码
直接地址
3.2.4 寄存器间接寻址
指令所选中的寄存器内容是实际操作数地址(而不是操作数)
寻址范围
内部RAM(00H-7FH/FFH)使用寄存器R0,R1,SP
外部数据存储器(0000H-FFFFH)
指令形式:
特点:操作数所指定的寄存器中存放的不是操作数本身,而是操作数的地址。
例如:
MOV A, @R0 ;A ← ((R0))
MOVX A, @DPTR ;A ← ((DPTR))
MOV @R0, #30H
MOV @R0, 30H
文档评论(0)