0

次のMOV指示があります。

mov [SI], DX

SI = 3333h
DX = A3A3h
IP = 104h

すべてが明確で、A3A3h 値が 3333h アドレスの下に保存されます。

movただし、この特定の命令について奇妙な説明を見つけました。

[30030 + 3333]tj[33363] = A3A3

奇妙な tj のことは無視します - ここの 30030 の部分は何ですか? それはどこから来たのですか?

4

3 に答える 3

2

「tj」が何であるかはわかりませんが、動きの説明は次のとおりです。

MOV [SI],DX

これにより、 (データ セグメント) レジスタの外にDXあるアドレスのメモリ位置にの内容が移動されます。だから:SIDS

[30030 + 3333]tj[33363] = A3A3

例を挙げていると思いますが、残念ながら、特にセグメントレジスタの設定内容を示していませんDS。だから私の推測はDSis です3003。したがって、アドレスは(DS << 4) + SI、またはとして計算され30030 + 3333ます。「tj」の後、彼らはこれを合計して の最終アドレスを与えました33363

于 2013-07-02T21:29:54.660 に答える
1

私の X86 の知識はややさびていますが、正しく覚えていれば、30030 の部分は、この場合は 3003 であるデータ セグメント レジスタ (DS) から来ている可能性が最も高いです。DS と SI の場合、最終アドレスはセグメント * 16 + インデックス レジスタとして計算されます。

于 2013-07-02T21:28:59.943 に答える