如何检测装配中的箭头键

Ami*_*zan 1 assembly

我想用箭头键在汇编语言中引导一个形状,我的代码是这样的:

call getkey
cmp al, ...
je direct
Run Code Online (Sandbox Code Playgroud)

什么后我应该把它用于诊断用箭头键用户按下???

Mic*_*ael 5

这在DOS下适用于我(在DOSBox下测试):

[org 0x100]

repeat:
; Get keystroke
mov ah,0
int 0x16
; AH = BIOS scan code
cmp ah,0x48
je up
cmp ah,0x4B
je left
cmp ah,0x4D
je right
cmp ah,0x50
je down
cmp ah,1
jne repeat  ; loop until Esc is pressed

mov ah,0x4c
int 0x21

up:
mov dx,upstring
mov ah,9
int 0x21
jmp repeat

down:
mov dx,downstring
mov ah,9
int 0x21
jmp repeat

left:
mov dx,leftstring
mov ah,9
int 0x21
jmp repeat

right:
mov dx,rightstring
mov ah,9
int 0x21
jmp repeat

upstring db "Up pressed",13,10,'$'
downstring db "Down pressed",13,10,'$'
leftstring db "Left pressed",13,10,'$'
rightstring db "Right pressed",13,10,'$'
Run Code Online (Sandbox Code Playgroud)

如果您不能/不想使用int 0x16(例如,因为您需要读取非阻塞),您可以尝试从端口0x60读取.