8085 微处理器中查找数组中最大数的程序
在这个程序中,我们将了解如何使用 8085 从字节块中找到最大数。
问题陈述
编写 8085 汇编语言程序,以从字节块中查找最大数。
讨论
在这个程序中,数据存储在 8001H 及其之后的地址中。8000H 存储着块的大小。执行此程序后,它将返回最大数,并将其存储在 9000H 地址处。
逻辑很简单,我们将第一个数字存储到寄存器 B 中以开始工作。在每次迭代中,我们从内存中获取数字并将其存储到寄存器 A 中。然后,如果 B < A,则我们只需将 B 的值更新为 A,否则继续进行下一次迭代。因此,我们可以找到字节块中的最小数。
输入
| 地址 | 数据 |
|---|---|
| ... | ... |
| 8000 | 06 |
| 8001 | 55 |
| 8002 | 22 |
| 8003 | 44 |
| 8004 | 11 |
| 8005 | 33 |
| 8006 | 66 |
| ... | ... |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 指向获取数组大小的地址 | |
| F003 | 4E | MOV C, M | 获取数组的大小 | |
| F004 | 23 | INX H | 指向实际数组的地址 | |
| F005 | 46 | MOV B, M | 将第一个数字加载到 B 中 | |
| F006 | 0D | DCR C | 递减 C | |
| F007 | 23 | LOOP | INX H | 指向下一个位置 |
| F008 | 7E | MOV A, M | 将下一个数字从内存获取到累加器 | |
| F009 | B8 | CMP B | 比较累加器和 B | |
| F00A | DA, 0E, F0 | JC SKIP | 如果 B > A,则跳过 | |
| F00D | 47 | MOV B, A | 如果 CY 为 0,则更新 B | |
| F00E | 0D | SKIP | DCR C | 递减 C |
| F00F | C2, 07, F0 | JNZ LOOP | 当计数不为 0 时,跳转到 LOOP | |
| F012 | 21, 00, 90 | LXI H,9000H | 指向目标地址 | |
| F015 | 70 | MOV M, B | 存储最小数 | |
| F016 | 76 | HLT | 终止程序 |
输出
| 地址 | 数据 |
|---|---|
| ... | ... |
| 9000 | 66 |
| ... | ... |
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP