次のMOV
指示があります。
mov [SI], DX
SI = 3333h
DX = A3A3h
IP = 104h
すべてが明確で、A3A3h 値が 3333h アドレスの下に保存されます。
mov
ただし、この特定の命令について奇妙な説明を見つけました。
[30030 + 3333]tj[33363] = A3A3
奇妙な tj のことは無視します - ここの 30030 の部分は何ですか? それはどこから来たのですか?
「tj」が何であるかはわかりませんが、動きの説明は次のとおりです。
MOV [SI],DX
これにより、 (データ セグメント) レジスタの外にDX
あるアドレスのメモリ位置にの内容が移動されます。だから:SI
DS
[30030 + 3333]tj[33363] = A3A3
例を挙げていると思いますが、残念ながら、特にセグメントレジスタの設定内容を示していませんDS
。だから私の推測はDS
is です3003
。したがって、アドレスは(DS << 4) + SI
、またはとして計算され30030 + 3333
ます。「tj」の後、彼らはこれを合計して の最終アドレスを与えました33363
。
私の X86 の知識はややさびていますが、正しく覚えていれば、30030 の部分は、この場合は 3003 であるデータ セグメント レジスタ (DS) から来ている可能性が最も高いです。DS と SI の場合、最終アドレスはセグメント * 16 + インデックス レジスタとして計算されます。