1
我可以計算一個地址Segment:Offset
爲Segment
* 0x10 + Offset
。但我如何計算相反?計算段:從絕對地址偏移
E.g.我如何從0xF4170
到F400:0170
和從0xACF04
到ABCD:1234
?
我可以計算一個地址Segment:Offset
爲Segment
* 0x10 + Offset
。但我如何計算相反?計算段:從絕對地址偏移
E.g.我如何從0xF4170
到F400:0170
和從0xACF04
到ABCD:1234
?
由於多個Segment:Offset
對可以映射到相同的線性地址,因此您需要具有基線或偏移量以及線性地址。
所以如果我們有段0xF400
和線性地址0xF4170
,我們得到的偏移量是0xF4170 - (0xF400 << 1)
這就是0x170
。
只知道線性地址這樣做,這是一個困難得多(其實它一點是不可能的)。如果我們濫用的事實,段地址應該爲16字節對齊,我們就具備的功能:
Segement + k16 = (linear >> 1) & ~16
但當然,這是非常不準確的,只給出了地址的可能範圍。
謝謝你的回答。無論如何,我不在乎是否有多對可能性段:偏移量。你是否知道計算其中一個的方法,而不知道該段是否爲偏移,而沒有做任何「暴力」? – muffel 2012-02-27 12:15:44
@ muffel:查看我更新的答案。這是您需要多個方程或某些給定的副作用的問題之一,它允許您解決兩個未知問題。 – Necrolis 2012-02-27 12:27:12
很高興知道,謝謝! – muffel 2012-02-27 12:44:06