问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

把一位16进制数转化为对应的ASCII码。

发布网友 发布时间:2022-04-23 02:11

我来回答

5个回答

热心网友 时间:2022-04-24 06:36

补充:之前第一段话说的有问题,所以修改了下,如下:(另外提交的时候没注意,第一个兄弟的回答已经是正确的了^_^)
主要思想是0~9转为对应的ASCII码时加30h,而a,b,c,d,e,f则加37h,比30h多出来的7h就是通过adc(多加了CF的01h)以及daa(多加了06h)实现的。
先说对0~9的,以5为例,
and
al,0fh
add
al,90h
变为95h
daa
这个时候的daa,由于95h低位,高位都小于9,且无进位,所以不变
adc
al,40h
95h
+
40h
+
CF
=
D5h
daa
低位不变,高位大于9,所以加60h,变为35h,且CF
=
1
最终结果为35h,即字符5对应的ascii码53.
然后是A~F,以C为例:
and
al,0fh
add
al,90h
变为9Ch
daa
这个时候的daa,先看低位,由于低位是C,大于9,所以加06h,结果变为A2h,再看高位,高位A,大于9,所以加60h,变为02h,CF
=
1(有进位)
adc
al,40h
adc操作,02h
+
40h
+
CF
=
43h
daa
此时43h低高位都小于9,所以无变化。最后结果43h,也即C的ASCII码67

热心网友 时间:2022-04-24 07:54

4个2进制位为一个16进制数,2进制1111为16进制F,2进制中千位的1=8,百位的1=4,十位的1=2,个位的1=1,将各个位的数作相应转换再相加,的到的数就是10进制数0-15,可轻松转换成16进制。如01011100,可看成是两组2进制数0101和1100,则这个数就是16进制的5C。
10转16:
100以内一点的10转16心算比较快,复杂的用“计算器”算了。10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0。如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数。
16转10:
用相反的道理,将十位数乘以16加上个位数。如5A,将5乘以16得80,加上A的10进制10,结果是90。

热心网友 时间:2022-04-24 09:28

这段程序的难点就是DAA的作用:
如果AL的低4位大于9或AF=1,则AL的内容加06H,并将AF置1;然后如果AL的高4位大于9或CF=1,则AL的内容加60H,且将CF置1。如果两个都不满足,则将AF,CF清零。
1.
如果al的值是0-9,那么:
add
al,90h
---------al变成90-99H
daa
---------al不变
adc
al,40h
---------al为d0-d9
daa
---------al加上60H,变成30-39H,正是0-9的ASCII码。
2.
如果al的值是A-F,那么:
add
al,90h
---------al变成9A-9FH
daa
---------al加6,高4位变A,所以再加60H,成00-05,且CF=1
adc
al,40h
---------al为41-46H,正是A-F的ASCII码。
daa
---------al不变

热心网友 时间:2022-04-24 11:20

;假设x,已经在r2中。
mov
a,
r2
;取来x
clr
c
subb
a,
#3ah
jc
end_c
subb
a,
#07h
end_c:
add
a,
#0ah
;转换后的十六进制数,在a中。
ret
就这些。

热心网友 时间:2022-04-24 13:28

理解DAA的操作,就不难明白
以下截取自INTEL手册,应该已经很清楚了,无需更多描述
old_AL
<-
AL;
old_CF
<-
CF;
CF
<-
0;
IF
(((AL
AND
0FH)
>
9)
or
AF
<-
1)
THEN
AL
<-
AL
+
6;
CF
<-
old_CF
or
(Carry
from
AL
<-
AL
+
6);
AF
<-
1;
ELSE
AF
<-
0;
FI;
IF
((old_AL
>
99H)
or
(old_CF
=
1))
THEN
AL
<-
AL
+
60H;
CF
<-
1;
ELSE
CF
<-
0;
FI;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 ascii16进制码 c的16进制ascii码值 怎么将16进制转换成ASCII码? 什么叫16进制ASCII ASCII字符和十六进制字符是什么意思 电脑键盘输入不了数字? 电脑键盘数字键没反应怎么办? 剪映怎么去logo? 华为电脑笔记本数字怎么按不了? 电脑键盘上的右边的数字去不能按了 为什么 键盘上的灯还亮 换键盘也... 电脑键盘左边的数字失灵怎么办? 剪映如何删除不要的视频部分? 做寿司不用寿司醋行吗? 做寿司用的米饭有没有什么讲究?必须要放寿司醋吗? 做寿司是不是一定要放寿司醋,放白米醋,或者不放醋,饭会不会变硬? 做寿司的时候,一定要加醋吗?? 做寿司需要什么材料? 做寿司一定要加醋吗? 做寿司时,不用寿司醋,用沙拉酱搅拌米饭行吗? 寿司可不可以不加寿司醋。寿司醋是起什么作用的啊/? ascii和16进制转换 一位16进制数和对应的ASCII编码的差为多少 十六进制数的ascii码转换为十进制数 十六进制转ascii码算法 16进制的ASCII码在文件中以16进制是怎么表示出来的? 已知小写的英文字母&quot;m&quot;的十六进制ASCII码值是6D,则小写英文字母&quot;C&quot;的十六进制ASCII码值是____。 ASCII码是十进制数还是十六进制数? 什么是十六位进制数和ASCII字符 16进制转ascii 汇编语言十六进制转换成ASCII 如何把一位16进制的数转换成对应的ASCII码 2 求助ASCII怎么转换16进制 怎么样可以把16进制数转换成ASCII ? 中学生如何长高方法 初中生长高秘诀是什么 中学生为什么会有白头发? 中学生长的什么样才最可爱 白萝卜和卞萝卜能一起吃吗 微星显示器hdmi1无信号 铡嗗众姣曚笟鐢熷繀椤诲叿澶囨姤钥冨矖浣嶈&#59110;姹傜殑鐩稿簲灞傛&#57532;鏁欏笀璧勬牸璇佷功责