8085微处理器中将十六进制转换为BCD的程序


这里我们将看到一个8085程序,它将把二进制数(十六进制)转换为其BCD等效值。

问题陈述

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

讨论

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

在这种情况下,我们可以使用INR指令来增加计数器,但是这个指令不会影响进位标志,所以我们使用了ADI 10H

输入

地址
数据


8000
34


 

流程图

 

程序

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


LXI H,8000H
初始化内存指针
F003
16, 00


MVI D,00H
清除D寄存器(最高有效字节)
F005
AF


XRA A
清除累加器
F006
4E


MOV C,M
获取十六进制数据
F007
C6, 01
LOOP:
ADI 01H
逐个计数
F009
27


DAA
调整BCD计数
F00A
D2, 0E, F0


JNC SKIP
跳转到SKIP
F00D
14


INR D
增加D
F00E
0D
SKIP:
DCR C
减少C寄存器
F00F
C2, 07, F0


JNZ LOOP
跳转到LOOP
F012
6F


MOV L,A
加载最低有效字节
F013
62


MOV H,D
加载最高有效字节
F014
22, 50, 80


SHLD 8050H
存储BCD
F017
76


HLT
终止程序

 

输出

地址
数据


8050
52


更新于:2019年10月9日

1K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告