原创 单片机学习笔记---关于变址寻址得问题

2009-8-13 23:12 1241 7 7 分类: MCU/ 嵌入式

发布: 2009-4-05 16:00 |  作者: hnrain |   查看: 14次


变址寻址是一种基址寄存器+偏移量的间接寻址方式.它以16位的寄存器dptr或pc为基址寄存器,累加器a做为地址偏移量,来形成操作数所在的存储单元的地址,几把基址和偏移量相加,得到的结果做为操作数的地址

U9q+F$wDGl1EYc43630           1 以pc的当前值为基址(指本条指令的首地址),单字节指令,执行时,先始pc+1指向下一条指令的地址,然后在与累加器a的内容相加,形成变址寻址的地址

#g/P&Al3EA43630 电子园51单片机学习网#n-_u"k3Hh`L,E

              movc  a,   @a+pc         ;    (pc)<----(pc)+1 ,   (a)<----((a)+(pc)电子园51单片机学习网{1_@m C$r7J%h

电子园51单片机学习网6ru-PMg AX:}

            2 以dptr为基址寄存器,将dptr的内容与累加器a的内容相加得到变址地址

W5B;tnSc43630

xp7cFDg43630              movc  a,   @a+dptr      ;    (a)<-----((a)+(dptr))电子园51单片机学习网*_)] p(i3g

电子园51单片机学习网~$`_O,{Z'f

             编写简单验证程序;

*M3M K"W:Zd43630 电子园51单片机学习网K8EGY+Nh

             org       0000h

O%Uh[|yW43630 电子园51单片机学习网(Z yHZ_5z7e7Z8N

             ljmp     main电子园51单片机学习网%yGB)W1yg+Od

电子园51单片机学习网H$MMi$f{A!?!Oa

             org       0030h

pD!elX8ke"?,^o43630

M(ad h3FN C43630main:      mov     a,   #02h                 ;  将偏移量02h送入累加器a电子园51单片机学习网3Z p9W*z5L@.x


.zeYe1Q1?(AK43630              movc   a,   @a+pc             ;   将当前pc值与偏移量相加得到变址地址,将其内容送到a电子园51单片机学习网q Y-Nz!D^


_#e0} I_1A1O1i-h43630             此条指令的首地址为0032h,执行时现将pc+1,变成0033h,再和偏移量02H相加,结果为35h电子园51单片机学习网R l&g+b-E-l!Z]


!N+sT,vvD43630            将0035h单元的内容送入a中电子园51单片机学习网{ byC~$L


gKMff:f%r@@]43630点击看大图电子园51单片机学习网$n!x?_k

电子园51单片机学习网5W9I]|5[!c0l3m?

              mov    dptr, #0041h           ;    设定基地址,将0040h送如dptr电子园51单片机学习网 ?Gr D!x8Bc}S o8J:kf


.Kgf|4NF$c0f43630              此条指令在程序存储器中所处的位置如下电子园51单片机学习网;yS-S.o*NJi*l


e(|w/t6jf"A4Z{ feA43630                       0033h       dptr

!G6f$F3E$z+Ho43630

3q[1a0a5b(r43630                       0034h        00h电子园51单片机学习网5ZeE+V&N1[(k


Y*LA'ob r43630                       0035h        41h           ;此处即为上条指令执行后所指向的地址,所以执行后a中的内容为41h 电子园51单片机学习网3k fL"C8k"[1k

电子园51单片机学习网Y{&Z,{['T d$MqGY t

             

2l*beq C"u&l#i:NLQN43630

/x5U)`:@g8l43630                        6136_200904051601182J89O.jpg电子园51单片机学习网:w5QppN5BwH4ml


0O9a0[N_Q43630             movc   a,  @a+dptr            ;     将a中的内容与dptr中的内容相加,其和的地址的内容送a

7\7vJu g4O43630

\x IV4c P8R&Y;FGn43630                         点击看大图

+cudSt i*Z43630 电子园51单片机学习网6J `W:W:?"^Rjsq

               org     0080h                    ;伪指令,下面的内容从0080h单元开始存放

;d]xz-c43630

J;o4AGR43630               db  73h,60h,90h               ;0082h单元的内容为90h

/C+E{eSj)[43630 电子园51单片机学习网0B#h }p7}?,nB

              end电子园51单片机学习网&EG+x\bw


E O0D;`:MQ436301     变址寻址方式专用于程序存储器的访问,不能访问数据存储器电子园51单片机学习网1LVhR+w,H

电子园51单片机学习网r~)^M(} V2w

2      使用变址寻址时,应先为a,和dptr赋值,以便确定地址,以pc为基址时只需要给a赋值即可电子园51单片机学习网"n"qw,i t{V:{4e

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条