匯編實(shí)現(xiàn)顯示鍵盤ASCII值源代碼

字號:

code segment public
     assume cs:code,ds:code
     jmp start
     msg db ’This program can show you the ASCII of characters or key combinations’,0dh,0ah
     db ’ I hope it would help you’,0dh,0ah
     db ’ press ESC(ASCII 1bh) to exit!~~’,0dh,0ah
     db ’ kinglin 03.11.27’,0dh,0ah
     db 0dh,0ah,24h
     save db ?
    start:
     mov ax,cs
     mov ds,ax
     lea dx,msg
     mov ah,09h
     int 21h
    loop1:
     mov ah,07h ;input character
     int 21h
     mov save,al
     cmp save,01bh ;is ESC??
     jz done ;yes,jmp done
     cmp save,00h ;is key combination?
     jnz show ;no,jmp
     mov ah,07h
     int 21h
     mov save,al
    show:
     mov bl,save ;save al
     mov cl,04h ;get high 4 bit
     shr bl,cl
     cmp bl,09h ;is greater than 09h?
     jbe changdec ;below or equal,then jmp
     add bl,07h ;greater then add 07h
    changdec:
     add bl,30h ;show
     mov dl,bl
     mov ah,02h
     int 21h
     mov al,save
     and al,0fh ;get low 4 bit
     cmp al,09h
     jbe chdec
     add al,07h
    chdec:
     add al,30h
     mov dl,al
     mov ah,02h
     int 21h mov dl,’ ’
     mov ah,02h
     int 21h
    loop loop1
    done:
     mov ah,4ch
     int 21h
    code ends
     end start