我正在研究与内存寻址相关的汇编语言的大学分配。物理地址可以是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位长。
答案 0 :(得分:2)
领先的零
16位模式下x86处理器中的物理地址实际上是20位长。在你的例子中,前导零被删除了。
0x0A2E * 0x10 = 0x0A2E0
+ 0x00A2 = 0x0A382
= 0xA382
因此地址0A2E:00A2指向与0000:A382相同的存储单元。