一段简单的汇编程序,显示键盘按健的扫描码和ASCII码

;Stack Segment
stack segment para stack 'stack'
      dw 256 dup(0)
      tos label word
stack ends
;Code Segment
code segment
      assume cs:code,ss:stack,ds:data
;Proc main
main  proc far
      mov ax,stack
      mov ss,ax
      mov sp,offset tos
      push ds
      xor ax,ax
      push ax
again:
      mov ah,0
      int 16h
      mov bx,ax
      cmp al,1bh
      jz exit
      call binihex
      mov dl,20h
      mov ah,2
      int 21h
      mov dl,bl
      mov ah,2
      int 21h
      mov dl,dh
      mov ah,2
      int 21h
      mov dl,0ah
      mov ah,2
      int 21h
      jmp again
exit:
      ret
main endp
;Proc binihex
binihex proc
 mov ch,4
rotate:
 mov cl,4
 rol bx,cl
 mov al,bl
 and al,0fh
 add al,30h
 cmp al,3ah
 jl print
 add al,7
print:
    mov dl,al
    mov ah,2
    int 21h
    dec ch
    jnz rotate
 ret
binihex endp
code ends
end main
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值