2012-02-27 6 views

答えて

2

複数のSegment:Offsetペアが同じリニアアドレスにマップできるため、最初にリニアアドレスとともにベースまたはオフセットのいずれかを指定する必要があります。

ので、我々は、セグメント0xF400とリニアアドレス0xF4170を持っている場合、我々は0x170でオフセットされて0xF4170 - (0xF400 << 1)を取得します。


リニアアドレスを知るだけでこれを行うのは、実際にはほとんど不可能です。我々はセグメントアドレスは16バイトが整列しなければならないという事実を乱用した場合、我々は機能を持っているでしょう:

Segement + k16 = (linear >> 1) & ~16

もちろんの、これは非常に不正確であり、唯一のアドレスの可能な範囲を提供します。

+0

その回答に感謝します。とにかく、ペアの複数の可能性がある場合、私は気にしません。セグメント:オフセット。あなたはセグメントをオフセットとして知っていなくても、どんな種類の "ブルートフォース"もせずに、それらのどれか1つだけを計算する方法を知っていますか? – muffel

+0

@muffel:最新の回答をご覧ください。これは、2つの未知数を解くことができる2つ以上の方程式またはいくつかの副作用が必要な問題の1つです。 – Necrolis

+0

おかげで、ありがとう! – muffel

関連する問題