汇编语言:分段存储器模型中物理地址可以是16位吗?

时间:2015-05-20 10:51:22

标签: assembly x86

我正在研究与内存寻址相关的汇编语言的大学分配。物理地址可以是16位吗?以下是教师提供的数值。

BX=0x0000
SI=0x01A2
DS=0x0A2E

Effective Address:
EA = Base + Index + Offset
    = 0x0000+0x01A2+0xFF00
    =0x100A2
    = 0x00A2

Physical:
=Segment * 10 + EA
=0x0A2E * 10 + 0x00A2
= 0xA382 (16 bits)

是否正确,因为物理内存地址必须是20位长。

1 个答案:

答案 0 :(得分:2)

领先的零

16位模式下x86处理器中的物理地址实际上是20位长。在你的例子中,前导零被删除了。

0x0A2E * 0x10   = 0x0A2E0
       + 0x00A2 = 0x0A382 
                = 0xA382

因此地址0A2E:00A2指向与0000:A382相同的存储单元。