打印本文 打印本文  关闭窗口 关闭窗口  
汇编实现显示键盘ASCII值源代码
作者:佚名  文章来源:不详  点击数  更新时间:2007/11/21 20:44:12  文章录入:杜斌  责任编辑:杜斌

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 
打印本文 打印本文  关闭窗口 关闭窗口