- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MCS - 51片机指令系统
第3章 MCS - 51单片机指令系统
3.1 寻址方式
1. 单字节指令
单字节指令格式由8, 例如:
CLR A→E4H
2. 双字节指令
双字节指令格式由两个字节组成, , 例如:
MOV A, #10H→74H 10H
3. 三字节指令
三字节指令格式中, , 后两个字节为操作数, 例如:
MOV 40H, #30H→75H 40H 30H
一条汇编语言指令中最多包含 4 个区段, 如下所示:
[标号:] 操作码 [操作数] [;注释]
分开: 标号与操作码4 个区段之间要用分隔符之间用“: ”隔开, 操作码与操作数之间用空格隔开, 操作数与注释之间用“;”隔开, 如果操作数有两个以上, 则在操作数之间要用逗号“,”隔开 )。 (乘法指令和除法指令除外
所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语言编程时, 数据的存放、传送、 运算都要通过指令来完成。 编程者必须自始至终都要十分清楚操作数的位置, 以及如何将它们传送到适当的寄存器去参与运算。每一种计算机都具有多种寻址方式。寻址方式的多少是反映指令系统优劣的主要指标之一。
在 MCS -51单片机指令系统中, 有以下 7种寻址方式:
(1) 立即寻址;
(2) 直接寻址;
(3) 寄存器寻址;
(4) 寄存器间接寻址;
(5) 基址寄存器加变址寄存器间接寻址;
(6) 相对寻址;
(7) 位寻址。
1. 立即寻址
立即寻址方式是指操作数包含在指令字节中。 跟在指令操作码后面的数就是参加运算的数, , 例如指令:
MOV A, # 3AH
MOV DPTR, # 0DFFFH
上述两条指令均为立即寻址方式, 第一条指令的功能是将立即数 3AH送累加器A中, 第二条指令的功能是将立即数 0DFFFH送数据指针DPTR中(0DFH→DPH, 0FFH→DPL)。
2. 直接寻址
在指令中直接给出操作数的地址, , 指令的操作数部分直接是操作数的地址。
在MCS -51 , 直接寻址方式中可以访问 3 种存储器空间:
(1) 内部数据存储器的低 128 个字节单元(00H~7FH)。
(2) 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。
(3) 位地址空间。
3. 寄存器寻址
在该寻址方式中, 8个工作寄存器R0~R7, 累加器A, 寄存器B、数据指针DPTR和布尔处理器的位累加器C。
4. 寄存器间接寻址
在这种寻址方式中, R0、R1 作为地址指针,寻址内部RAM区的数据; 当访问外部RAM时, 可使用R0、 R1及DPTR作为地址指针。寄存器间接寻址符号为“@”, 例如:
5. 基址寄存器加变址寄存器间接寻址
这种寻址方式用于访问程序存储器中的数据表格, DPTR或PC的内容为基本地址, 加上变址寄存器A的内容作为操作数的地址, 例如:
MOVC A, @DPTR+A
JMP @A+DPTR
MOVC A, @ PC+A
6. 相对寻址
在MCS -51 , 分为直接转移和相对转移指令, 在相对转移指令中采用相对寻址方式。这种寻址方式是以PC的内容为基本地址, 加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个 8 位带符号的常数, 可正可负, 其范围为-128~+127。
7. 位寻址
该种寻址方式中, RAM单元中某一位的信息。
3.2 指令系统
3.2.1 指令分类
按指令的功能, MCS -51 指令系统可分为下列 5 类:
(1) 数据传送;
(2) 算术运算;
(3) 逻辑运算;
(4) 位操作;
(5) 控制转移。
Rn——当前选定的寄存器区中的 8 个工作寄存器R0~R7, 即n=0~7。
Ri——当前选定的寄存器区中的 2 个寄存器R0、 R1, i=0、1。
direct—— 8 位内部RAM单元的地址, 它可以是一个内部数据区 RAM单元(00H~7FH)或特殊功能寄
文档评论(0)