0

私はアセンブリの宿題をやっていますが、何が起こっているのかを理解する最善の方法は、プログラムの実行中にレジスタで何が起こるかを見ることだと思いました. Visual Studio ではレジスタを表示できますが、レジスタの 1 つの下位 8 ビットのみを変更する操作を行っているため、何を見ればよいかわかりません。誰でも私を助けることができますか?

質問と私が実行しているコードは次のとおりです。

次の各命令が順番に実行された後のデスティネーション オペランドの 16 進数値は何になりますか?

TITLE MASM Template                     (main.asm)

INCLUDE Irvine32.inc

.data var1 SBYTE -4, -2, 3, 1

.code main PROC

    call Clrscr

    mov  al, var1   mov ah, [var1+3]

    exit main ENDP

END main

最初のステートメントの後の答えは -4 で、2 番目のステートメントの後の答えは 1 であると確信していますが、レジスターで確認したいと思います。

そしてレジスタウィンドウはVSのように見える必要があります: ここに画像の説明を入力

4

1 に答える 1

2

ahalレジスタは、の下位2バイトの単なるエイリアスであるため、レジスタウィンドウでエントリをeax監視できます。eaxあなたの例では、ahis0x36alis0x65です。mov al, [var1]そのアドレスで値を取得する必要があるかもしれませんが、それについてはよくわかりません。

于 2011-03-05T19:15:05.800 に答える