【微机汇编语言学习笔记(五)】十六进制转ASCII码

目的:将四位十六进制数203B存放于起始地址为3500H的内存单元中,把它们转换为ASCII码后存入起始地址是350AH的内存单元中。

设计思路:十六进制数0H~9H加上30H即可得到相应的ASCII码,AH~FH加上37H即可得到相应的ASCII码。

程序

sstack segment
        dw 64 dup(?)
sstack ends 

code segment
      assume cs:code

start:   mov cx,0004h   ;四位十六进制数所以要转换4个字符
         mov di,3500h   ;十六进制数源起始地址
         mov dx,[di]
a1:      mov ax,dx
         and  ax,000fh  ;取最低位的十六进制数
         cmp al,0ah
         jb a2          ;将该数与0AH比较,小于0AH转a2;大于OAH顺序执行
         add al,07h     
a2:      add al,30h     ;十六进制转为相应的ASCII码
         mov [di+0dh],al;将数据送入目的地址区(最低位对应存放在目的地址最低位)
         dec di
         push cx        ;将cx入栈,保护cx中数据
         mov cl,04h     ;设置移位位数为4位
         shr dx,cl      ;将十六进制数右移4位
         pop cx         ;cx出栈
         loop a1        ;判断所有十六进制数是否已经都转换完成
         
         ;将输入的十六进制的数值显示在屏幕上
         
  • 7
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻萌的路飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值