SI レジスタと DI レジスタの実際的な違いは何ですか?
-
18-09-2019 - |
質問
何が違うのか分かりません。
解決
movsb のような命令を使用している場合、si は sレジスタは、di はレジスタとみなされます。 d宛先レジスター。ただし、どちらも通常の x86 レジスタです。
他のヒント
私のアセンブリが少し錆びですが、一つはソースインデックス、他の宛先インデックスです。 movsb
のような命令は、メモリ位置からバイトをコピーします、それは唯一、SI
によって指され、その後、両方をインクリメントするので、あなたがDI
するSI+1
に格納されたバイトをコピーしたい場合はDI+1
によって指し示され、メモリ位置に移動さらにMOVSB命令を取ります。
SI
はソースインデックスの略です。ソースインデックスは、ストリング命令(LODS、MOVS、またはCMPS)に読まれている現在の文字へのポインタとして使用しています。間接アドレッシングを行うときBxのかBpとを追加するオフセットとしてソース指数も可能です。
例:
MOV [Bx + SI] , Ax
アドレスBxをSIとの和であるメモリ位置にこの命令は、コピーアックスの内容を
DI
はストリング命令で書かれ又は比較される現在の文字へのポインタとして使用される宛先インデックス、を表します。
それも可能です。
ディ上で語ったように、宛先インデックスの略で、我々は[SI]、SI例えば、MOV斧を使用したメモリからデータを移動したいときSiは、ソースインデックスの略です。 我々はメモリにデータを移動したいとき、私たちは、ジを使用しています。例えば、MOV [ジ]、斧
の両方が16ビットレジスタであり、8ビットに分割することができない
所属していません StackOverflow