-1
アセンブラを習得しようとしていて、 の3つの等しい値を持つarrを定義する簡単なプログラムを書きました。そして、第2のvauleをレシスタeaxにコピーしたいと思います。 このコードは、mov eax, [arr]
という文を使用すると、最初の値に対して動作し、コンパイルされます。結果はAhになります。しかし、配列の2番目の値をレジスタeaxにコピーしようとすると、それが機能しません: mov eax, [arr+1]
、値は0A000000hとなります。 関数DumpRegs
は、コマンドプロンプトにレジスタ値を表示しています。そのソースコードはありません。 (しかし、その本のウェブサイトからの良い出典から)。アレイからレジスタに移動vaule
コード:Visual StudioでMASMで記述された
ExitProcess PROTO,dwExitCode:DWORD
DumpRegs PROTO
.data
arr DWORD 10,10,10
.code
main PROC
mov eax, [arr+1];
call DumpRegs
INVOKE ExitProcess,0
main ENDP
END main
その。
OK次の要素へのポインタ4つのバイトを移動しなければなりません。 – Niklas