[masm]实验二:从键盘输入数据并显示的实验

;实验二:从键盘输入数据并显示的实验
;目  的:掌握接受键盘数据的方法,并了解将键盘数据显示时
;        须转换为ASCII码的原理
;内  容:编写程序,将键盘接受到的四位16进制数转换为等值
;        的二进制数,再显示到终端上

data segment
 notice db 0dh, 0ah,'===proc of number 16 -> 2===', 0dh, 0ah
  db '**the Letter only can be: A,B,C,D,E,F**', 0dh, 0ah, '$'
 result db 0dh, 0ah,'the result is:$'
 errmsg db 'Error: illegal input',0Dh,0Ah,'$'
data ends

code segment
 assume cs:code,ds:data
main proc far
start:
 push ds
 mov ax, data
 mov ds, ax 
 xor ax, ax
 push ax
 ;显示提示信息
 mov ah, 09h
 lea dx, notice
 int 21h
 ;循环接受4个16进制字符,存于bx
 mov ch, 4 ;接受字符数循环
 mov cl, 4 ;移位循环控制数
 xor bx, bx
 mov ah, 01h
getch: int 21h
 sub al, '0'
 cmp al, 0
 jl error
 cmp al, 9
 jl next
 sub al, 7 ;字母时要再减7
next: rol bx, cl 
 or bl, al ;把新数放在最后
 dec ch
 jnz getch
 ;显示二进制数 
 mov ah, 09h ;提示信息
 lea dx, result
 int 21h
 mov ch, 16d
 mov ah, 02h
showN: rol bx, 1
 mov dl, bl
 and dl, 01h
 add dl, '0'
 int 21h
 dec ch
 jnz showN
  
 jmp exit 
 ;出错处理 
error: mov ah, 09h
 lea dx, errmsg
 int 21h
 mov ah, 02h
 mov dl, 07h ;响玲
 int 21h
exit: ret
main endp
code ends
 end start
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值