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。

输入

第一个输入

地址
数据


8000
41


第二个输入

地址
数据


8000
35


第三个输入

地址
数据


8000
46


流程图

 

 

 

程序

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


LXI H, 8000H
加载数字的地址
F003
7E


MOV A,M
将ASCII数据从内存加载到累加器
F004
FE, 58


CPI 58H
与ASCII(9) + 1比较
F006
D2, 0E, F0


JNC NUM
输入为数字
F009
D6, 37


SUI 37H
减去偏移量以获得字母字符
F00B
C3, 10, F0


JMP STORE
存储结果
F00E
D6, 30
NUM
SUI 30H
减去30以获得数值
F010
23
STORE
INX H
指向下一个位置
F011
77


MOV M,A
将累加器内容存储到内存
F012
76


HLT
终止程序


输出

第一个输出

地址
数据


8001
0A


第二个输出

地址
数据


8001
05


第三个输出

地址
数据


8001
0F


更新于: 2019年10月9日

607 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告