1

明日これの試験がありますが、この質問について本当に混乱しています.各命令が実行された後のALレジスタとAHレジスタに含まれる値は何ですか. 各命令が実行される前に、AL=9 および AH=0 であると想定します。

•nop(操作は同じままです)

•移動アル、ああ(アル= 0ああ= 0)

• 斧を押す (ah と al をスタックにプッシュしますか?)

•デカックス

•斧、257を追加

• al,251 を追加

• shl al,2

斧について言及されたときに混乱する最初のいくつかを知っています。つまり、ax,257 を追加します。al と ah は、各命令の開始時に 9 と 0 に戻されることを覚えておいてください。

4

2 に答える 2

1

al と ah は、ax レジスタの下位バイトと上位バイトを参照する方法にすぎないことに注意してください。AX では、出現時に 16 ビット レジスタと考えて、AH または AL の値を尋ねられたときに下位半分と上位半分に分解するのが最善です。したがって、レジスタが 9 と 0 で始まる場合、レジスタは次のようになります。

 00000000   00001001
|________| |________|
    AH         AL
|___________________|
          AX

たとえば、add ax, 257次のようになります。

    |0000000|  |00001001|
+
    |0000001|  |00000001|

=   |0000001|  |00001010|
于 2012-05-17T16:24:34.030 に答える
1

AX は AH と AL を連結したものです (逆に、AL は AX の下位バイトであり、AH は AX の上位バイトです)。したがって、各命令の前に AX=0009h になります。

ただし、命令の 1 つが AL で動作する場合、AH にはまったく影響しません。

于 2012-05-17T16:14:08.973 に答える