如何在不停止程序的情况下识别键盘?

时间:2019-11-18 12:28:20

标签: assembly x86

我正在Windows 64kb的Tetris游戏的Emu8086上对Assembly x86进行编程。我正在实现一个用于跌落零件的循环和一个用于移动零件的proc。我的问题是在移动中,如果我使用此代码来识别按键,则该部件将停止识别该命令:

TECLADO proc
     xor ax,ax
     mov AH,00h  ; LE TECLADO 
     int 16h     ; INT 16H FAZ RECONHECIMENTO DA TECLA DIGITADA 
ret
endp  




    COMPTEC proc       
            call TECLADO     
            cmp ah,50H    ;BAIXO 
            jz BAIX 

             cmp al,20h  ; ESPACO   
             jz ESPACOW

             cmp ah,4DH   ; DIREITA          
             jz DIREITA  

             cmp ah,4BH    ;ESQUERDA          
             jz ESQUERDA     



             DIREITA:  .;IR PARA DIREITA 
             cmp dl,16h
             jz  FIMPC
             mov bx,0
             call ESC_STR_VIDEO 
             mov bx,2
             inc dl              
             JMP FIMPC
             ESQUERDA:  ;IR PARA ESQUERDA 
             cmp dl,0fh
             jz  FIMPC
             mov bx,0
             call ESC_STR_VIDEO
             mov bx,2
             dec dl  
             JMP FIMPC         
             BAIX:     ; IR PARA BAIXO
             mov bx,0
             call ESC_STR_VIDEO
             mov bx,2
             inc dh 
             cmp dh,15h
             jz ESPACOW
             JMP FIMPC 
             ;;apagar:
             ;;call LIMPA_CAIXA
             ;;JMP FIMPC
             ESPACOW:
             xor dx,dx
             mov dl,18     ; espacamento

             mov dh,3     ;linha

             mov bx,2
             JMP FIMPC

             FIMPC:    
    ret
    endp

我也尝试在中断16h使用ah = 01h。但是我没有得到很好的结果。

0 个答案:

没有答案