从给定的物理地址和有效地址中查找段地址

Find Segment address from given physical and effective address

如何从给定数据中找到段地址?

物理地址=0x119B,有效地址=0x10AB

公式是什么?

x86 16位实模式下的有效地址就是一个20位的偏移量部分segment:offset address。给你的问题是在与有效地址 0x10AB 结合产生物理(线性)地址 0x119B 时确定段值。

物理地址可以从段:偏移量 对与公式physaddr=(segment<<4)+offsetphysaddr=(segment*0x10)+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.