8085程序用于统计寄存器B内容中1的个数


在本程序中,我们将了解如何统计存储在寄存器B中的8位数中1的个数。

问题陈述

编写8085汇编语言程序,统计存储在寄存器B中的8位数中1的个数。

讨论

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

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

输入

寄存器
数据
B
DA

流程图

 

程序

地址
十六进制代码
标签
助记符
注释
F000
06, DA
 
MVI B, DA
取数字1101 1010
F002
37
 
STC
设置进位
F003
3F
 
CMC
取反进位
F004
78
 
MOV A,B
将数字从B加载到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
F01F
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日

2K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.