8085程序:查找10个数中的最大值和最小值


在这个程序中,我们将学习如何在一段数据中找到最大值和最小值。

问题陈述

编写一个8085汇编语言程序,在一个包含十个8位数的数据块中查找最大值和最小值。

讨论

在这个程序中,我们将数据块的第一个数字加载到寄存器D和E中。D将存储最小值,E将存储最大值。在每次迭代中,我们将检查数字是否小于D,如果是,则用新数字更新D,然后再次将其与E比较以检查数字是否大于E。如果是,则用新数字更新E。

输入

地址
数据
.
.
.
.
.
.
8000
55
8001
22
8002
88
8003
77
8004
11
8005
99
8006
44
8007
AA
8008
33
8009
66
.
.
.
.
.
.


流程图

程序

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


LXI H,8000H
加载初始地址
F003
0E, 0A


MVI C,0AH
加载数字个数
F005
56


MOV D,M
从内存中加载第一个数字
F006
5A


MOV E,D
也把第一个数字加载到E
F007
23


INX H
指向下一个位置
F008
0D


DCR C
递减计数
F009
7E
LOOP
MOV A,M
将内存中的数字加载到A
F00A
BA


CMP D
将D与A比较
F00B
D2, 0F, F0


JNC SKIP
如果CY = 0,则A不大于D
F00E
57


MOV D,A
用A更新D
F00F
BB
SKIP
CMP E
将E与A比较
F010
DA, 14, F0


JC DO
如果CY = 1,则A不大于E
F013
5F


MOV E,A
用A更新E
F014
23
DO
INX H
指向下一个位置
F015
0D


DCR C
C递减1
F016
C2, 09, F0


JNZ LOOP
跳转到循环
F019
21, 50, 80


LXI H,8050H
指向目标地址
F01C
72


MOV M,D
存储最小值
F01D
23


INX H
指向下一个位置
F01E
73


MOV M,E
存储最大值
F01F
76


HLT
结束程序


输出

地址
数据
.
.
.
.
.
.
8050
11
8051
AA
.
.
.
.
.
.

更新于:2019年7月30日

浏览量:1K+

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.