- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5课--ASM
§3.1 概述
7种寻址方式,111条指令
字节数
运算速度
单字节指令:49条
双字节指令:45条
三字节指令:17条
单周期指令:64条
双周期指令:45条
四周期指令: 2 条
第三章 MCS-51指令系统
Instruction Set
功能
数据传送类:29条
算术运算类:24条
逻辑运算类:24条
控制转移类:17条
位操作类: 17条
常用符号
Rn:工作寄存器中的寄存器R0、R1…R7之一,
Ri:工作寄存器中的寄存器R0或R1
#data:8位立即数
#data16:16位立即数
direct:片内RAM或SFR的地址(8位)
@间接寻址寄存器
Bit:片内RAM或SFR的位地址
addr11:11位目的地址
addr16:16位目的地址
rel: 补码形式的8位地址偏移量。
偏移范围为-128~127
/:位操作指令中,该位求反后参与操作,不影响该位
X:片内RAM的直接地址或寄存器
(X):相应地址单元中的内容
→:箭头左边的内容送入箭头右边的单元内
§3.2 寻址方式
3.2.1 立即寻址
Immediate Addressing
操作数就包含在指令代码中,在操作码之后,称为立即数,用“#”表示。
MCS-51
如:MOV P1, #80H
MOV R7, #0F5H
MOV DPTR,#1245H
操作数存在程序存储器中
3.2.2 直接寻址
Direct Addressing
直接使用数所在单元的地址找到了操作数,所以称
这种方法为直接寻址。
操作数在SFR、内部RAM、位地址空间。
如: MOV A,00H
MOV C,60H
MOV A,0F0H
3.2.3 寄存器寻址
Register Addressing
对选定的工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR中的数进行操作。
例:MOV A,R0;将R0工作寄存器中的数据送到累加器A中去。
提一个问题:我们知道,工作寄存器就是内存单元的一部分,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H 和 MOV A,R0不就没什么区别了吗?
的确,这两条指令执行的结果是完全相同的,都是将00H单元中的内容送到A中去,但是执行的过程不同,执行第一条指令需要2个机器周期,而第二条则只需要1个机器周期,第一条指令变成最终的目标码要两个字节(E5H 00H),而第二条则只要一个字节(E8H)就可以了。
3.2.4 寄存器间接寻址
Register Indirect Addressing
把地址放在另外一个寄存器中,根据这个寄存器中的数值决定该到哪个单元中取数据。
R0,R1----8位地址,片内低128字节或片外
DPTR----16位,片外64KB
MCS-51
如: MOV A,@R0
MOVX A,@R0
MOVX A,@DPTR
操作数在片内RAM中
操作数在片外RAM中
操作数在片外RAM中
以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两者内容相加,结果作为操作数的地址。
常用于查表操作。
MCS-51
MOVC A, @A+DPTR ;(A+DPTR) →A
MOVC A, @A+PC ; PC+1 →PC,(A+PC)→A
3.2.5 变址寻址(基址+变址)
Base-Register-plus-Index-Register-Indirect Addressing
操作数在程序存储器中
如:MOVC A,@A+DPTR
设DPTR=2000H,A=E0H
20E0H
47
指令代码
3.2.6 相对寻址
将PC中的当前内容与指令第二字节给出的数相加,结
果作为跳转指令的转移地址(转移目的地址)。
PC中的当前内容称为基地址(本指令后的字节地址)
指令第二字节给出的数据称为偏移量,1字节带符号数.
常用于跳转指令。
如: JC 23H
若C=0,不跳转; C=1,跳转.
Relative Addressing
改变PC
如:JC 23
1025H
23H
1002H
指令代码
当前PC
对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式。
如: SETB 3DH; 将27H.5位置1
CLR C ;Cy位清0
3.2.7 位寻址
Bit Addressing
操作数在片内RAM位地
原创力文档


文档评论(0)