首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

求教为何这段代码可以让一位十六进制数码变成ascii码

2012-12-30 
求教为什么这段代码可以让一位十六进制数码变成ascii码al待转换的十六进制数码alascii码htoasc procan

求教为什么这段代码可以让一位十六进制数码变成ascii码


;al=待转换的十六进制数码
;al=ascii码
htoasc proc
        and al,0fh
        add al,90h
        daa
        adc al,40h
        daa
        ret
htoasc endp

[解决办法]
不好意思,#2~#5错了

调用htoasc前,设al=01h,调用后al=31h,即‘1’
htoasc proc
        and al,0fh
        add al,90h ;al=91h
        daa        ; al=91h,cf=0,af=0
        adc al,40h ; al=40h+91h=d1h
        daa        ; al=d1h+60h=31h,cf=1
        ret
htoasc endp

调用htoasc前,设al=0Bh,调用后al=41h,即‘B’
htoasc proc
        and al,0fh
        add al,90h ;al=9bh
        daa        ; al=9bh+6=01h,cf=1,af=0
        adc al,40h ; al=40h+cf+01h=42h
        daa        ; al=42h
        ret
htoasc endp

热点排行