Dam*_*Ali 2 assembly real-mode memory-segmentation x86-16
how to find a segment address from given data?
Physical address = 0x119B, Effective address = 0x10AB
what could be the formula?
x86 16位实模式下的有效地址只是20位segment:offset address的偏移部分。您得到的问题是,确定与有效地址0x10AB组合产生的物理(线性)地址0x119B时的段值。
可以从具有公式或的segment:offset对计算物理地址。重新修改公式:physaddr=(segment<<4)+offsetphysaddr=(segment*0x10)+offset
Run Code Online (Sandbox Code Playgroud)physaddr = (segment*0x10)+offset physaddr-offset = segment*0x10 (physaddr-offset)/0x10 = segment segment = (physaddr-offset)/0x10
现在我们知道细分的公式,segment = (physaddr-offset)/0x10我们可以执行计算来找到您的问题的答案:
Run Code Online (Sandbox Code Playgroud)segment = (0x119B-0x10AB)/0x10 segment = 0xF0/0x10 segment = 0xF
我们可以通过将其插入物理地址的原始公式中来检查此结果,并获得:
Run Code Online (Sandbox Code Playgroud)physaddr = (0xF*0x10)+0x10AB = 0x119B.
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |