加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

相对基址加变址寻址方式

(2011-05-18 23:03:53)
标签:

it

分类: c语言和汇编语言

操作数在存储器中,操作数的有效地址
由基址寄存器之一的内容与变址寄存器之一的内容
及指令中给定的8位或16位位移量相加得到。
          (BX)      (SI)      8位
即:EA =               +

          (BP)      (DI)      16位位移量

在一般情况下,如果BP之内容作为有效地址的一部分,
则以SS段寄存器之内容为段值,
否则以DS段寄存器之内容为段值。
在指令中给定的8位或16位位移量采用补码形式表示。
在计算有效地址时,如果偏移量是8位,那么被带符号扩展成16位。
当所得的有效地址超过FFFFH时,就取其64K的模。

例如:MOV AX,[BX+DI-2]
假设,(DS) = 5000H,(BX) = 1223H,
(DI) = 54H,(51275) = 54H
(51276) = 76H

16位(-2)=0000 0000 0000 0010取反加一
         1111 1111 1111 1110
         FFFE
那么,存取的物理存储单元是多少呢?
物理地址 = 50000 + 01223 + 00054 + FFFFE = 51275H
在执行该指令后,(AX) = 7654H。

相对基址加变址这种寻址方式的表示方法多种多样,下面四种表示方法均是等价的:
MOV AX,[BX+DI+1234H]
MOV AX, 1234H[BX][DI]
MOV AX, 1234H[BX+DI]
MOV AX, 1234H[DI][BX]

0

阅读 收藏 喜欢 打印举报/Report
前一篇:7种寻址方式
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有