汇编:1位16进制数到ASCII码转换

本文介绍了一个简单的16进制数到ASCII码的转换程序,使用了汇编语言实现。程序首先判断输入的16进制数是否在0到9之间,如果是,则直接加30H得到对应的ASCII码;如果在A到F之间,则加37H得到对应的大写字母的ASCII码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

;============================
;1位16进制数到ASCII码转换
;   { X+30H (0≤X≤9)
;Y= {
;   { X+37H (0AH≤X≤0FH)
DATAS SEGMENT
Num db 9
ASCII db ?
DATAS ends

CODES SEGMENT
    ASSUME CS:CODES, DS:DATAS
    START:
        mov AX,DATAS
        mov DS,AX

        mov al,Num  ;将带操作的字符放入al中
        and al,0FH  ;求与 运算 
        add al,30H  ;先加上30H (如果为数字 就转化为了数字对应的ASCII码)

        cmp al,'9'
        jBE flag    ;小于等于9对应的ASCII码跳转
        add al,07H  ;说面待转换的字符为字母则再加上07H转换为对应的字符的ASCII码
    flag:
        mov ASCII,al;将最终结果赋回ASCII中
        mov ah,4ch
        int 21H
CODES ends
    end START

 

转载于:https://www.cnblogs.com/roseAT/p/10244437.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值