回 帖 发 新 帖 刷新版面

主题:新手上路,请各位高人指教啊!帮帮忙啊!

编写 keytest.ASM
功能:
    等待按键,读取并按16进制显示按键的ASCII和SCAN码
    (要求在固定位置显示,例如:第24行,第1列,第3列),
    如果是Esc键,程序退出,否则继续!

回复列表 (共3个回复)

沙发

要用到中断的概念
设置中断,中断发生后判断扫描码,如果是ESC就退出程序,否则就输出。在指定位置么你查查BIOS中断,有设置光标的功能的,就能在指定位置输出了。
当然不用中断判断按键也行,就一直循环吧,但是这样的话CPU会很浪费……

板凳

请问有代码段吗?

3 楼

.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

我来回复

您尚未登录,请登录后再回复。点此登录或注册