欢迎访问:基址寻址和变址寻址的区别_教育_教育_精致生活网
  • 微信客服微信客服
  • 微信公众号微信公众号

基址寻址和变址寻址的区别

收藏  分享
网友发布网友发布82

基址寻址和变址寻址的区别

? ? ? ?基址寻址和变址寻址都属于偏移寻址,最大的区别在于 基址寻址中隐含的寄存器是寻址过程中的“基地址” , 变址寻址中隐含的寄存器的地址则是寻址过程中的“偏移量”。

? ? ? ?偏移寻址是直接寻址和寄存器间接寻址的一种结合,有多种形式,这里只讨论基址寻址和变址寻址。它的有效地址的计算公式是: EA=A+(R) 。这要求指令中至少要有两个地址字段,且至少其中一个是显示的,其中一个是形式地址A被直接使用,另一个是寄存器地址或者基于操作码的一个隐含引用的寄存器。

? ? ? ?基址寻址中被引用的寄存器中有一个存储器地址,地址字段含有一个相对于该地址的偏移量。所以寄存器中的地址就是接下来运行使用到的“基地址”,在一段时间内都是不用改变的;改变寄存器中的“基地址”之后,你就可以在另外一个地址空间中进行寻址了。综上所诉, 通过基址寻址,你可以得到一个很大的寻址空间 。 段寻址 就是基址寻址的一种。

? ? ? ?变址寻址中指令的地址字段引用一个主存的地址,被引用的专用寄存器中含有相对于这个地址的一个偏移量。所以在你运行的一段时间中,指令中的地址都不会改变,通过逐渐的改变寄存器的内容就可以访问一片连续的地址空间了。 变址寻址最重要的应用则是在对数组进行重复的操作 。

可能尚有一些细节没有指出,还请大家不吝赐教。

比如这样一个子程序

SEG: INC A

M0VC A,@A+PC

RET

DB 00H,01H,02H,03H

程序要实现的是当A=0 时, 取表里的00H,=1时,取01H...。因为PC值 是当前指令的地址, 下一条是RET占了一个地址。再下一个地址才是存放 01H,所以要加1 修正。

标签: 改变 字段 寄存
 
更多>最新的资讯
推荐图文
推荐教育
点击排行