8085程序:将8位二进制数转换为BCD码


在这个程序中,我们将学习如何将二进制数转换为其BCD等效值。

问题陈述

一个二进制数存储在800H地址。将其转换为BCD等效值并将其存储到8050H内存地址。

讨论

在这里,我们从内存中读取一个数,并将其初始化为计数器。现在,在这个计数器的每一步中,我们将数字加1,并调整十进制值。通过此过程,我们找到二进制数或十六进制数的BCD值。

我们可以使用INR指令来递增计数器,但是此指令不会影响进位标志,因此我们使用了ADI 10H。

输入

地址数据
.
.
.
.
.
.
800034
.
.
.
.
.
.

流程图

程序

地址十六进制代码标签助记符注释
F00021, 00, 80
LXI H,8000H初始化内存指针
F00316, 00
MVI D,00H清零D寄存器(用于最高有效字节)
F005AF
XRA A清零累加器
F0064E
MOV C, M获取十六进制数据
F007C6, 01LOOP:ADI 01H逐个计数
F00927
DAA调整BCD计数
F00AD2, 0E, F0
JNC SKIP跳转到SKIP
F00D14
INR D递增D
F00E0DSKIP:DCR C递减C寄存器
F00FC2, 07, F0
JNZ LOOP跳转到LOOP
F0126F
MOV L, A加载最低有效字节
F01362
MOV H, D加载最高有效字节
F01422, 50, 80
SHLD 8050H存储BCD码
F01776
HLT终止程序


输出

地址数据
.
.
.
.
.
.
805052
.
.
.
.
.
.

更新于:2019年7月30日

10K+ 浏览量

启动您的职业生涯

完成课程获得认证

开始学习
广告