如何从给定的数据中找到段地址?
物理地址 = 0x119B,有效地址 = 0x10AB
公式可能是什么?
x86 16位实模式下的有效地址只是20位的偏移量部分段:偏移量 address https://thestarman.pcministry.com/asm/debug/Segments.html。您遇到的问题是确定与有效地址 0x10AB 结合产生物理(线性)地址 0x119B 时的段值。
物理地址可以从段:偏移量与公式配对physaddr=(segment<<4)+offset
or 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.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)