Кто-то знает, почему RightKeyUp не собирается выходить, а другие ключи собираются?
в Tasm Turbo Assembler
Когда я очищаю буфер (mov ah, 0ch mov al, 07h int 21h)
По какой-то причине я не получаю освобождение ключа
Например, этот код (RightUp никогда не принимается):
IDEAL
MODEL large
STACK 256
RightUP equ 11001101b
RightDown equ 77
LeftDown equ 75
EscKey equ 1
DATASEG
CODESEG
Start:
mov ax, @data
mov ds, ax
mov ax, 0013h
int 10h
lop:
mov ah,0ch
mov al,07h
int 21h
in ax,060h
;push ax
cmp al,RightUP
je lbl1
cmp al,RightDown
je lbl2
cmp al,EscKey
je lbl1
cmp al,LeftDown
je lbl1
jmp lop
lbl1:
jmp exit
lbl2:
jmp lop
Exit:
mov ah,00h
mov al,03h
int 10h
mov ax,04c00h
int 21h
End Start
я выбрал дополнительную опцию и Я понял, что эти две команды (mov ah, 0, int 16h) делают то же самое, но также не получают освобождение ключа, мне действительно нужна помощь:)
Больше кода, который более осязаем:
IDEAL
MODEL large
STACK 256
RightUP equ 11001101b
RightDown equ 77
EscKey equ 1
DATASEG
CanClick db 1
CODESEG
Start:
mov ax, @data
mov ds, ax
mov ah,00h
mov al,03h
int 10h
lbl1:
mov [CanClick],1
lop:
;mov ah,0ch
;mov al,07h
;int 21h
;in al,060h
mov ah,0
int 16h
cmp ah,RightDown
je lbl2
cmp ah,RightUP
je lbl1
cmp ah,EscKey
je lbl1
jmp lop
lbl2:
cmp [CanClick],1
jne lop
mov ah,0eh
mov al,97
mov BH,0
mov BL,0
int 10h
mov [CanClick],0
jmp lop
Exit:
mov ax,04c00h
int 21h
End Start