8085 微处理器中将 BCD 转换为 HEX 的程序


在这里,我们将看到一个 8085 程序,该程序将把 BCD 数转换为等效的 HEX 数。

问题陈述

一个 BCD 数存储在地址 802BH 中。将其转换为二进制等效值并将其存储到内存地址 802CH 中。

讨论

在这个问题中,我们从内存中获取一个 BCD 数并将其转换为其二进制等效值。首先,我们将输入的每个 nibble 切割。因此,如果输入是 52(0101 0010),那么我们可以通过将数字与 0FH 和 F0H 进行掩码来简单地将其切割。当高位 nibble 被切割时,将其向左旋转四次以将其传输到低位 nibble。

现在,只需使用十进制调整方法将数字相乘即可获得最终的十进制结果。

输入

地址
数据


802B
52



流程图

 

 

 

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

程序

地址
HEX 代码
标签
助记符
注释
8000
31, FF, 80


LXI SP,80FFH
初始化堆栈指针
8003
21, 2B, 80


LXI H, 802BH
指向输入缓冲区的指针
8006
01, 2C, 80


LXI B, 802CH
指向输出缓冲区的指针
8009
7E


MOV A, M
将 802BH 的内容移动到 A
800A 
CD, 0F, 80


CALL BCDBIN
将 BCD 数转换为 HEX 的子程序
800D 
02


STAX B
将累加器存储到 BC 指向的内存位置
800E
76


HLT
终止程序
800F 
C5
BCDBIN
PUSH B
保存 B
8010
47


MOV B, A
将 A 复制到 B
8011
E6, 0F


ANI 0FH
最高四位掩码
8013
4F


MOV C, A
将 A 复制到 C
8014
78


MOV A, B
将 B 复制到 A
8015
E6, F0


ANI F0H
最低四位掩码
8017
0F


RRC
累加器右移 4 次
8018
0F


RRC


8019
0F


RRC


801A 
0F


RRC


801B 
57


MOV D, A
将计数值加载到寄存器 D 中
801C 
AF


XRA A
清除累加器的内容
801D 
1E, 0A


MVI E, 0AH
用 0AH 初始化寄存器 E
801F 
83
SUM
ADD E
将寄存器 E 的内容加到 A 中
8020
15


DCR D
递减计数器,直到达到 0
8021
C2, 1F, 80


JNZ SUM


8024
81


ADD C
将寄存器 C 的内容加到 A 中
8025
C1


POP B
恢复 B
8026
C9


RET
将控制权返回给调用程序

 

输出

地址
数据


802C
34


更新于: 2019 年 10 月 9 日

787 次查看

启动你的 职业生涯

完成课程获得认证

开始学习
广告