8085程序用于计算给定8位数中1的个数


在这个程序中,我们将看到如何计算8位数中1的个数。

问题陈述

编写8085汇编语言程序,计算存储在8000H位置的8位数中1的个数。

讨论

在这个程序中,我们使用旋转操作来计算1的个数。由于8位数有8个不同的位,因此我们将数字旋转8次。我们可以使用RRC或RLC。这里我们使用了RRC指令。此指令将LSb发送到MSb以及进位标志。因此,在每次迭代之后,我们可以检查进位状态以获得1的计数。

如果数字是DA(11011010),则答案将是5,因为数字中有五个1。

输入

地址
数据
.
.
.
.
.
.
8000
DA
.
.
.
.
.
.


流程图

程序

地址
十六进制代码
标签
助记符
注释
F000
37


STC
设置进位
F001
3F


CMC
补码进位
F002
3A, 00, 80


LDA 8000H
将数字加载到A
F005
0E, 08


MVI C,08H
将计数器初始化为08H
F007
06, 00


MVI B,00H
清空B寄存器
F009
0F
LOOP
RRC
右移
F00A
D2, 0E, F0


JNC SKIP
如果CY = 0,则跳过下一步
F00D
04


INR B
如果CY = 1,则增加B
F00E
0D
SKIP
DCR C
将C减1
F00F
C2, 09, F0


JNZ LOOP
如果Z = 0,则跳转到循环
F012
78


MOV A,B
将计数加载到A
F013
32, 50, 80


STA 8050H
将结果存储在8050H
F016
76


HLT
终止程序


输出

地址
数据
.
.
.
.
.
.
8050
05
.
.
.
.
.
.

更新于: 2019年7月30日

905 次查看

开启您的职业生涯

通过完成课程获得认证

立即开始
广告