网站大量收购独家精品文档,联系QQ:2885784924

第三章(寻址方式及传送指令).pptVIP

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 51单片机指令的寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 基址变址寻址 相对寻址 位寻址 寻址方式:指令按地址获得操作数的方式 七种寻址方式,一条指令可能含多种寻址方式 立即寻址 操作数直接就出现在指令中 例:MOV A,#64H ;(A)← 立即数64H ADD A,#05H ;(A)←(A)+立即数05H 注意:符号“#”表明其后跟的是立即数, 立即数——就是数字量本身。 直接寻址 指令中直接给出了操作数所在单元的地址或名称 例:MOV R1,1FH ;R1 ←(1FH) MOV 30H,4AH ;30H←(4AH) 在本单片机中规定:访问特殊功能寄存器SFR只能采用直接寻址方式。例如: MOV A, SP ; A) ←(SP) MOV A, 81H ; (A) ←(SP) MOV P1, #5AH ; (P1)←(#5AH) MOV 90H,#5AH ; (P1)←(#5AH) MOV B, 30H ; (B) ←(30H) 相同 相同 寄存器寻址 从寄存器中读取操作数或存放操作数进寄存器 例:MOV A,B ; (A) ←(B) MOV 30H,R0 ;(30H)←(R0) MOV A,R1 ; (A) ←(R1) 寄存器间接寻址 寄存器中的内容是一个地址,由该地址单元 寻址到所需的操作数 注意: 1)“间接”表示某寄存器中的“内容”只是一个“单元地址”,这个地址单元中存放的数据才是要找的“操作数”。 2)符号“@”表示“在…”,其含义与读音皆同“at”。 例:[ MOV R1,#30H ;(R1)← 立即数30H ] MOV R1,#30H ;(R1)← 立即数30H ] MOV @R1,#0FH ;(30H)←立即数0FH MOV A,@R1 ;(A)←((30H))=#0FH 在本单片机中访问特殊功能寄存器SFR只能采用直接寻址方式的原因:SFR分布在80H~0FFH范围内,而52系列单片机有256字节的片内RAM,其中的80H~0FFH的RAM与SFR所占地址重叠。 ?MOV A, 90H 等效于 MOV A, P1 属直接寻址 ?MOV A, @R0 ;[事先已知 (R0) = #90H ] 执行的操作:A ←(90H) 属寄存器间接寻址, ?随意写的指令如:MOV A, 85H 则是非法的! 于是规定: 80H~0FFH范围内的RAM只能用寄存器间接寻址方式,而SFR只能用直接寻址方式。从而解决了地址冲突的问题。例如: 存储器配置(片内RAM) 51片内RAM 128字节(00H—7FH) 52片内RAM 256字节(00H—0FFH) 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SFR分布在80H-FFH 其中92个位可位寻址 80H FFH 51子系列 128字节 52子系列 256字节 只能直接寻址 只能寄存器间接寻址 基址加变址寻址 以16位的地址指针寄存器DPTR或 16位的PC寄存器为基址寄存器,以累加器 A 为变址寄存器,两者中的“内容”形成一个16位的“地址”,该“地址”所指的存储单元中的内容才是操作数。 例:[设:A中已存有#A4H,DPTR中已存有#1234H] MOVC A,@A+DPTR;(A)←((A)+(DPTR)) 操作:将A4H+1234H=12D8H单元中的数放进累加器A 相对寻址 当前PC值加上指令中规定的偏移量 rel,构成实际的操作数地址 例: SJMP rel 操作:跳转到的目的地址 = 当前16位PC值 + rel 注意: 1)“当前PC值”指程序中下一条指令所在的首地址, 是一个16位数; 2)符号“rel”表示“偏移量”,是一个带符号的单字 节数,范围是:-128—+127(80H—7FH), 在实际编程中,“rel” 通常用标号代替 位寻址 指令中直接给出了操作数所在的位地址。 例: CLR P1.0 ;(P1.0) ← 0 SETB ACC.7 ;(ACC.7)← 1 CPL C ;( C )← NOT( C ) 注意: 1)位地址里的数据只可能是一个 0 或 1 2)有的位地址

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档