8085程序将ASCII转换为HEX


现在让我们看看英特尔 8085 微处理器的程序。此程序将把ASCII转换为HEX值。

问题陈述

编写8085汇编语言程序,将ASCII转换为十六进制字符值。

讨论

我们知道数字00H的ASCII是30H(48D),而09H的ASCII是39H(57D)。所以所有其他数字都在30H到39H的范围内。0AH的ASCII值为41H(65D),0FH的ASCII值为46H(70D),所以所有其他字母(B、C、D、E、F)都在41H到46H的范围内。

这里的逻辑很简单。我们正在检查ASCII值是否小于58H(9的ASCII+1)。当数字小于58时,它是一个数值。因此,我们只需从ASCII值中减去30H,而当它大于58H时,它就是字母值。因此,为此,我们正在减去37H。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输入

第一个输入

地址数据
. . .. . .
800041
. . .. . .

第二个输入

地址数据
. . .. . .
800035
. . .. . .

第三个输入

地址数据
. . .. . .
800046
. . .. . .

流程图

程序

地址十六进制代码标签助记符注释
F00021,00, 80


LXIH, 8000H加载数字的地址
F0037E


MOVA, M从内存中加载ASCII数据到累加器
F004FE,58


CPI58H与ASCII(9) + 1比较
F006D2,0E, F0


JNC NUM输入为数字
F009D6,37


SUI 37H减去偏移量以获取字母字符
F00BC3,10, F0


JMP STORE存储结果
F00ED6,30NUMSUI 30H减去30以获取数值
F01023STOREINX H指向下一个位置
F01177


MOVM, A将累加器内容存储到内存
F01276


HLT终止程序

输出

第一个输出

地址数据
. . .. . .
80010A
. . .. . .

第二个输出

地址数据
. . .. . .
800105
. . .. . .

第三个输出

地址数据
. . .. . .
80010F
. . .. . .

更新于: 2020年6月26日

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告