单片机上.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机上.ppt

四.寄存器间接寻址方式 指令的操作数为寄存器名,寄存器中数据为操作数的地址。 存放地址的寄存器称为间址寄存器或数据指针。 在指令中用工作寄存器(R0、R1、DPTR)给出存储单元的地址,而操作数在该存储单元中(片内RAM或片外RAM),指令中寄存器名前要加@。 * 可访问片内及片外RAM,由于片内RAM与片外RAM地址有重叠现象,故用MOV指令访问片内RAM,用MOVX指令访问片外RAM,并且片外RAM的访问只能采用MOVX指令来进行。 注意:访问片内RAM用工作寄存器R0、R1,访问片外RAM时,R0、R1、DPTR均可(区别) 例: MOV A,@R0 ;A?((R0)) 设指令执行前 A=20H,R0=40H,地址为40H存储器单元内容如图所示。执行指令后, A= ? ,R0 = ? , (40H)= ? 41H 67H 40H 34H 34H 40H 34H R0→ * 例: MOVX @R0 ,A MOVX A,@DPTR 用@R0,@R1作间址访问外部RAM时,由于R0,R1只有8位只能访问256字节,用DPTR可访问64K字节 * 例如:将片外RAM 2065H单元内容47H送A,可执行指令“MOVX A,@R0”。其中R0内容应为65H,P2内容应为20H。如图所示: 65H 47H R0 A 47H 数据存储器 地址 ┋ ┋ 2065H ① ② 以指令中所指定的R0内容(65H)为指针 将片外RAM 2065H单元内容47H送A 20H P2 * 五.变址寻址方式 用于访问程序存储器,它以DPTR或PC计数器作为基址寄存器,以累加器A作为变址寄存器,两者之和为操作数在程序存储器中的地址。常用于查表。操作数在程序存储器单元中。 数据地址 = 基地址 + 偏移量。 有三种指令:MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR * 例如:MOVC A,@A+DPTR;((A)+(DPTR))→A 如图所示 1EH 0302H ROM DPTR A A 02F1H 11H 1EH + ① ② DPTR内容与A的内容之和为程序存储器地址 程序存储器内容送A * 六.相对寻址 相对寻址也用于访问程序存储器,只适用于相对转移指令。相对寻址是以当前程序计数器PC的值加上指令规定的偏移量rel,从而构成实际操作数地址的寻址方法。偏移量rel用8位带符号补码表示,范围为:-128~127。 在编写程序时,常用标号代替rel值,由编译器在编译时自动计算得出rel值。 指令举例: JZ table ;Z标志位置1时转移到标号table所代表的指令处执行 * 例: JC 80H ;若C=0则PC值不变 ;若C=1则PC当前值加偏移量 注:见51页表10000000 操作码80 100510061007 0F87 PC当前值为1007H,80H为补码,1007H+ 80H=0F87H执行完指令,PC为0F87H * 相对寻址时目的地址的求法: 目的地址=源地址+2(相对转移指令字节数) +偏移量( rel ) 当rel为正时,正向转移 rel=目的地址-源地址-2 当rel为负时,反向转移 rel=(目的地址-源地址-2)补 =FFH- (源地址+2 -目的地址)+1 =100H-2- (源地址-目的地址) =FEH-|地址差| * 七.位寻址方式 指令给出位地址。位数据在存储器位寻址区。 例: MOV C,40H ;Cy?(位地址40H) 设指令执行前 Cy=1,位地址40H存储器单元如图,执行指令后,Cy= ? 28H 29H 位寻址区 0 可直接使用位地址,如内部RAM中的20H-2FH单元, 20H:00H—07H 2FH:78H---7FH SFR中88H: 88H---8FH 98H: 98H---9FH 也可用寄存器名加位数表示:PSW.2、P2.5 * 操作数寻址方式及有关空间 * 1.MOV A,#10H 2. MOV R0, A 3.ANL A,20H 4.JZ rel 5.CLR C 6. MOV A,@R0 7. MOVC A,@A+DPTR 练习3.1:判断下列指令的源操作数和目的操作数的寻址方式 * 1.MOV A,#10H ;源:立即寻址,目

文档评论(0)

000 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档