2017-03-07 11 views
0

私は学校から組立でヘビのゲームを作るというミッションを持っていました。
私はすべての試合を終えましたが、1つのことをする方法を考え出すことはできません。キーが押されていない間に、同じディレクションで蛇のカウントインが動くようにします。ASM:キーが押されていないか確認してください。

現在、各工程の後に、私のコードの呼び出しこのコードは、次のキーを取得するために:彼はそのような場合のために良いではありませんので、ユーザは、何かキーを押しますまで
mov ah,1h int 21h ; store at al
しかし、このコードを待機さ。
コードを知っていますか?キーを押さなくてもしばらくしてからコードをカウントしてください。
ありがとうございました:)

答えて

1

これを試してみてください:

mov ah, 0Bh ;CHECK IF ANY KEY WAS PRESSED. 
    int 21h  ;RESULT IN AL : ==0:NO KEY, !=0:KEY. 
    cmp al, 0 
    je JUMP_TO_MOVE_SNAKE 
;GET PRESSED KEY. 
    mov ah,1h 
    int 21h 
JUMP_TO_MOVE_SNAKE: 
    ... 

サービス0Bhは、キーが押されたとき、あなたが知ることができるので、コードの実行を停止しません。またはそうでないときに。

+0

ありがとう!これは動作しています:) – Idan

+1

'INT 21/AH = 0Bh'と' INT 16/AH = 01'の良い点は、DOS2 +以降、物理キーボードではなくSTDINをチェックすることです。 Upvoted。 –

0

割り込みを変数に設定してください。タイマーを使用して、読み込み直後にクリアします。実行するコードを決定するために変数を使用します。ストレート/左/右

+0

こんにちは、私はあなたの答えを得ていませんでした。私の問題は、キーが押されるまでプログラムが待っていて、キーが押されなければ、プログラムは続かないということでした。私はすでにあなたの答えについてより明確になるかもしれないので、あなたが言った機能を持っていますか? – Idan

関連する問題