8085程序:计算10个数序列中奇数的总数


在这个程序中,我们将学习如何在一段数据中计算奇数的数量。

问题陈述

编写一个8085汇编语言程序,计算一段数据中奇数的数量,数据块大小为10D,起始地址为8000H。

讨论

奇偶数的检查非常简单。我们可以通过检查最低有效位 (LSB) 来判断一个数是奇数还是偶数。当LSB为1时,该数为奇数,否则为偶数。在这个程序中,我们从内存中读取一个数,然后将其与01H进行AND运算。如果结果不为零,则该数为奇数,否则为偶数。

输入

地址
数据

.

.

.

.

.

.

8000
DA
8001
53
8002
26
8003
41
8004
17
8005
AC
8006
78
8007
D8
8008
9C
8009
3F

.

.

.

.

.

.

 

流程图

 

程序

地址
十六进制代码
标签
助记符
注释
F000
21, 00, 80
 
LXI H,8000H
指向起始字节
F003
0E, 0A
 
MVI C,0AH
将计数器初始化为0AH
F005
06, 00
 
MVI B, 00H
清零B寄存器
F007
7E
LOOP
MOV A,M
从内存中加载数据
F008
E6, 01
 
ANI 01H
A与01H进行AND运算
F00A
CA, 0E, F0
 
JZ SKIP
如果Z=0,跳转到SKIP
F00D
04
 
INR B
B加1
F00E
23
SKIP
INX H
指向下一个位置
F00F
0D
 
DCR C
C减1
F010
C2, 07, F0
 
JNZ LOOP
如果Z=0,跳转到LOOP
F013
78
 
MOV A,B
将计数器加载到A
F014
32, 50, 80
 
STA 8050H
将结果存储到8050H
F017
76
 
HLT
程序结束

 

输出

地址
数据

.

.

.

.

.

.

8050
04

.

.

.

.

.

.

 

 

 

 

 

更新于:2019年7月30日

2K+ 浏览量

开启你的职业生涯

完成课程获得认证

开始学习
广告