-4
今すぐアセンブリで新しいコードを書いています。あなたの助けが必要です! 16h割り込みを使用しましたが、キーストロークが有効かどうかをチェックしたいので、今すぐゼロフラグをチェックしたいのですが。どうしたらいいですか?アセンブリ - ZFが0か1かどうかチェックするには?
ありがとうございます! :)
今すぐアセンブリで新しいコードを書いています。あなたの助けが必要です! 16h割り込みを使用しましたが、キーストロークが有効かどうかをチェックしたいので、今すぐゼロフラグをチェックしたいのですが。どうしたらいいですか?アセンブリ - ZFが0か1かどうかチェックするには?
ありがとうございます! :)
here、ZF=1
キーストロークがない場合はZF=0
キーストロークがある場合。 JNZ
を使用して
mov ax, 0100h
int 16h
jz no_key
; Handle case if there is a key press here
; AH will contain the scan code; AL will contain the ASCII code
no_key:
; Handle case if there is no key press here
:あなたはJZ
を使用してそれに応じて
を分岐するJ(N)Z
命令を使用することができます
mov ax, 0100h
int 16h
jnz key_pressed
; Handle case if there is no key press here
key_pressed:
; Handle case if there is a key pressed here
; AH contains the scan code; AL contains the ASCII code
うわー、ありがとう!それは私のために本当に役に立ちました! :) –
私はx86-16を想定し、右のことですか? 'jz'または' je'(あなたのスタイルに依存します)は、ZF = 1であるかどうかをチェックします。 'jnz' /' jne'はZF = 0をチェックします。 [our doc](https://stackoverflow.com/documentation/x86/5808/control-flow/20470/conditional-jumps#t=201702060901496425342)を参照してください。 –
少なくとも、Intel x86および/またはx86_64命令セットマニュアルのコピーを入手してください。 –
また、分岐したくない場合、0/1の値が次のコードで役に立つ場合は、 'setz/setnz'を使用して、ZFに従って8bの値を0/1に設定することができます(' jz/jnz'分岐)。 'int 16h、ah = 1'の後でZFを実際にテストする必要があるので、この答えは関係ありませんが、次に学ぶべきことです(値がゼロかどうかを判断する方法):http://stackoverflow.com/a/41175294/4271923 – Ped7g