段超越前缀 ,MOV DI,ES:[SI+3] ,这个物理地址是如何计算的?

段超越前缀 ,MOV DI,ES:[SI+3] ,这个物理地址是如何计算的?
DI等于多少?
暗鑫 1年前 已收到1个回答 举报

叩入心扉 春芽

共回答了12个问题采纳率:91.7% 举报

物理地址=ES*10H+SI+3
DI是附加段ES中偏移量为SI+3单元的内容,具体的值只能是假设的

1年前 追问

6

暗鑫 举报

还 是没明白 ,为什么要ES*10H ?

举报 叩入心扉

8086的物理地址是20位的,而段寄存器只有16位,在合成物理地址时需要先将段寄存器中16位的段地址左移四位得到一个20位的段地址,也就是在段地址低位补四个0,相当于乘了16进制的10,这就是ES*10H 。

暗鑫 举报

SI是一个存储器指针,位移量为3,目的操作数显式指定的段寄存器为ES。 所以目的操作数的物理地址PA = ES * 16d(10h)+ SI + 3,DI的值为该地址单元中存放的字类型数据。 有个人告诉我是这样的???

举报 叩入心扉

这个描述很正确
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.060 s. - webmaster@yulucn.com