0

私はこのコードを持っています:

bits 16

org 0x7C00
start: jmp main

key: dw 0x1e, 'a', 0x30, 'b'

print:
    mov ah, 0x0E
    int 0x10

keyboard:
    cli
    in al, 0x64
    test al, 1
    jz return
    test al, 0x20
    jnz return

    in al, 0x60

    call convert

    call print
    sti

convert:
    mov bx, 0
    .LOOP:
        cmp al, [key+bx]
        je .conv
        add bx, 2
        jmp .LOOP
    .conv:
        mov al, [key+bx+1]
        ret

return:
    ret

main:
    call keyboard
    jmp main

times 510 - ($-$$) db 0
dw 0xAA55

キープレスをチェックし、キーを押すたびに、それを保存して登録し、印刷したいと考えています。

しかし、保存されるのはスキャンコードだけであり、それをASCII文字に置き換える必要があります.配列「キー」でそれを行いますが、機能せず、1つのキーのみを出力するだけで、プログラムは遅れます.

4

1 に答える 1