从给定的物理地址和有效地址中查找段地址
Find Segment address from given physical and effective address
如何从给定数据中找到段地址?
物理地址=0x119B,有效地址=0x10AB
公式是什么?
x86 16位实模式下的有效地址就是一个20位的偏移量部分segment:offset address。给你的问题是在与有效地址 0x10AB 结合产生物理(线性)地址 0x119B 时确定段值。
物理地址可以从段:偏移量 对与公式physaddr=(segment<<4)+offset
或physaddr=(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.
如何从给定数据中找到段地址?
物理地址=0x119B,有效地址=0x10AB
公式是什么?
x86 16位实模式下的有效地址就是一个20位的偏移量部分segment:offset address。给你的问题是在与有效地址 0x10AB 结合产生物理(线性)地址 0x119B 时确定段值。
物理地址可以从段:偏移量 对与公式physaddr=(segment<<4)+offset
或physaddr=(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.