如何从给定数据中查找段地址?
物理地址= 0x119B,有效地址= 0x10AB
公式是什么?
答案 0 :(得分:4)
x86 16位实模式下的有效地址仅是20位segment:offset address的偏移量部分。您已经得到的问题是确定与有效地址0x10AB组合产生的物理(线性)地址0x119B时的段值。
可以使用公式physaddr=(segment<<4)+offset
或physaddr=(segment*0x10)+offset
从 segment:offset 对计算物理地址。重新修改公式:
physaddr = (segment*0x10)+offset physaddr-offset = segment*0x10 (physaddr-offset)/0x10 = segment segment = (physaddr-offset)/0x10
现在我们知道细分的公式为segment = (physaddr-offset)/0x10
,我们可以执行计算以找到问题的答案:
segment = (0x119B-0x10AB)/0x10 segment = 0xF0/0x10 segment = 0xF
我们可以通过将其插入到物理地址的原始公式中来检查此结果并得到:
physaddr = (0xF*0x10)+0x10AB = 0x119B.