【汇编】从键盘输入一个四位十六进制数,然后以二进制形式在屏幕上显示出来。

要求

要求:输入的四个数码必须先拼成一个四位十六进制数,然后再做输出处理。

例如:
输入:3A49
输出:0011101001001001

代码

code segment

  assume cs:code

  main proc far

start:

  mov cx,4    ;四个数字循环四次 loop指令循环次数放在cx中,cx==0时顺序向下执行

  mov bx,0     ;用bx来存放四位十六进制数,先清零

  ;执行输入过程

  mov dh,0

input:

  mov ah,01h  ;读入字符,放在al中

  int 21h



  mov ah,0h

               ;判断是否是字母

  cmp al,39h

  jbe L2     ;如果从<=9说明符合0~9之间,不用减07h

  sub al,07h  

L2:

  sub al,30h

  add bx,ax

  ;判断是否是最后一位输入

  cmp cx,1

  jz L3        ;如果==0说明已经是最后一位,不用*16

  mov ax,bx

  mov dx,16 ;左移一位*16 字乘字

  mul dx

  mov bx,ax

L3:

  loop input



  mov dl,'='

  mov ah,02h

  int 21h



  ;输出,十六进制转二进制一位4个数

  mov cx,16

output:                       ;每次左移输出一位

  rol bx,1

  mov dl,bl

  and dl,01h

  add dl,30h



  mov ah,02h

  int 21h

  loop output



  mov ax,4c00h

  int 21h



  main endp

code ends

end start


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值