主题:新手上路,请各位高人指教啊!帮帮忙啊!
mabel
[专家分:0] 发布于 2006-04-11 19:50:00
编写 keytest.ASM
功能:
等待按键,读取并按16进制显示按键的ASCII和SCAN码
(要求在固定位置显示,例如:第24行,第1列,第3列),
如果是Esc键,程序退出,否则继续!
回复列表 (共3个回复)
沙发
p1s [专家分:4100] 发布于 2006-04-11 22:26:00
要用到中断的概念
设置中断,中断发生后判断扫描码,如果是ESC就退出程序,否则就输出。在指定位置么你查查BIOS中断,有设置光标的功能的,就能在指定位置输出了。
当然不用中断判断按键也行,就一直循环吧,但是这样的话CPU会很浪费……
板凳
mabel [专家分:0] 发布于 2006-04-12 20:23:00
请问有代码段吗?
3 楼
C语言爱好者 [专家分:19410] 发布于 2006-04-13 10:42:00
.model small
.code
start: mov ah, 01h
int 16h
jz start
mov bh, 0
mov dh, 24
mov dl, 1
mov ah, 02h
int 10h
mov ah, 0h
int 16h
cmp ax, 011bh
jz short exit
mov cx, 4
mov bx, ax
comp: rol bx, 1
rol bx, 1
rol bx, 1
rol bx, 1
mov dl, bl
and dl, 0fh
add dl, 30h
cmp dl, 39h
jbe short disp
add dl, 07h
disp: mov ah, 02h
int 21h
loop comp
jmp start
exit: mov ax, 4c00h
int 21h
end start
我来回复