Find Segment address from given physical and effective address

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?

Mic*_*tch 5

x86 16位实模式下的有效地址只是20位segment:offset address的偏移部分。您得到的问题是,确定与有效地址0x10AB组合产生的物理(线性)地址0x119B时的段值。

可以从具有公式或的segment:offset对计算物理地址。重新修改公式:physaddr=(segment<<4)+offsetphysaddr=(segment*0x10)+offset

physaddr = (segment*0x10)+offset
physaddr-offset = segment*0x10
(physaddr-offset)/0x10 = segment
segment = (physaddr-offset)/0x10
Run Code Online (Sandbox Code Playgroud)

现在我们知道细分的公式,segment = (physaddr-offset)/0x10我们可以执行计算来找到您的问题的答案:

segment = (0x119B-0x10AB)/0x10
segment = 0xF0/0x10
segment = 0xF
Run Code Online (Sandbox Code Playgroud)

我们可以通过将其插入物理地址的原始公式中来检查此结果,并获得:

physaddr = (0xF*0x10)+0x10AB = 0x119B.
Run Code Online (Sandbox Code Playgroud)