- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 指令系统;4.1 指令系统简介;80C51汇编语言指令格式;4.2 寻址方式;4.2.1 符号注释;addr11: 11位目的地址。 目的地址应与下条指令处于相同的2 KB程序存储器地址空间范围内, 主要用于绝对转移指令AJMP和子程序绝对调用指令ACALL指令中。
addr16: 16位目的地址。 目的地址可在全部程序存储器的64 KB空间范围内, 主要用于无条件长转移指令LJMP和子程序长调用指令LCALL中。
rel: 相对地址, 以补码形式表示的地址偏移量, 范围为-128~+127, 主要用于无条件相对短转移指令SJMP和所有的条件转移指令中。;bit: 内部数据存储器RAM和特殊功能寄存器SFR中的可直接寻址位地址。
@: 间接寻址寄存器或基地址寄存器的前缀, 如@Ri, @DPTR, 表示寄存器间接寻址。
/ -- /表示对该位操作数取反, 但不影响该位的原值。;以下符号仅出现在指令注释或功能说明中。
X --片内RAM的直接地址(包含位地址)或寄存器。
(X) --在直接寻址方式中,表示直接地址X中的内容;在间接寻址方式中,表示由间址寄存器X指出的地址单元。
((X)) --在间接寻址方式中,表示由间址寄存器X指出的地址单元中的内容。
? --指令操作流程,将箭头左边内容送入箭头右边的单元内。;1.立即寻址;例1 MOV A, #3AH ;立即数3AH送累加器A
;;2.直接寻址;例2 MOV P1,#10H ;将立即数10H送P1口。
注意:例2 中的目的操作数P1是直接寻址方式,这里用符号P1代替了直接地址90H。
;3.寄存器寻址;图4-2 MOV A,R2执行示意图;4.寄存器间接寻址;;5.变址寻址;例 1 现假设MOVC A,@A+DPTR指令存放在70H单元,ACC中原存放值为E0H,DPTR中值为2000H,则A+DPTR形成的地址为20E0H。20E0H单元中内容为47H,则执行该指令后,ACC中原E0H被47H代替。该指令执行过程示于图4-4。;;6.相对寻址;;7.位寻址;例1 SETB 3DH ;将片内RAM位地址3DH即27H 单元的第5位置“1”。
例2 ANL C, 3DH ;将3DH的位状态与进位位C 相与, 结果保留在C中。;操作数寻址方式与寻址空间;4.3 指令系统;4.3.1 数据传送类指令;数据传送类指令助记符与操作;;1、内部RAM数据传送指令;;(1)累加器A为目的操作数的指令;例如:(A)=5CH,(R0)=10H,(R5)=47H,
(10H)=D5H,(70H)=F2H,执行以下每条指令后,累加器A中的内容分别为:
MOV A,R5 ;(A)= 47H
MOV A,70H ;(A)= FZH
MOV A,@RO ;(A)= D5H
MOV A, # 78H ;(A)= 78H;(2)以寄存器Rn为目的操作数的指令;例如:若(A)=78H,(R5)=47H,(70H)=F2H,
执行以下每条指令后,R5中的内容分别为:
MOV R5,A ;(R5)=78H
MOV R5,70H ;(R5)=FZH
MOV R5, # A3H :(R5)= A3H;(3)以直接地址为目的操作数的指令;例:
MOV 50H,R3;50H←(R3),若(R3)=18H,则执行指令后(50H)=18H。
MOV TMOD,B;TMOD ← (B),若(B)=60H,则执行指令后(TMOD)=60H。;(4)以间接地址为目的操作数的指令;例如:若 A=70H,R1=30H,(40H)=50H,写出执行的结果。
MOV @R1,A ;(30H)=70H
MOV @R1,40H ;(30H) = 50H;(5)16位数据传送指令;2.外部数据传送指令;DPTR为16位寄数器,寻址范围为0000H~0FFFFH共64KB空间。
而Ri是8位寄数器,只能寻址00~0FFH低256个单元。
由于在80C51指令系统中,没有专门对外设的输入/输出指令,且片外扩展的I/O与片外RAM是统一编址的;因此如果在片外数据存储器的地址空间上安置I/O接口,则80C51单片机把上面4条指令作为输入/输出指令,与外部设备进行数据的传输与交换。
;例如,若(R0)=12H,(0012H)=56H,则执行指令“MOVX A,@R0”
以后,就把片外数据存储器0012H单元
文档评论(0)