8085程序用于在n个数字的数组中搜索一个数字
在本程序中,我们将了解如何使用8085在字节数组中搜索元素。
问题陈述
编写8085汇编语言程序,使用线性搜索技术在数据数组中搜索一个键值。
讨论
在本程序中,数据存储在8002H到8007H的位置。8000H包含块的大小,8001H保存要搜索的键值。执行此程序后,它将返回找到项目的那个数据的地址,并将该地址存储在9000H和9001H的位置。如果未找到该项目,则返回FFFFH。
如果数据存在于FFFFH内存位置,那么它也会存储FFFFH,所以这是一个模棱两可的情况。我们假设数据未存储在FFFFH,因此我们选择该值来指示数据不存在。
输入
| 地址 | 数据 |
|---|---|
| ... | ... |
| 8000 | 06 |
| 8001 | 55 |
| 8002 | 11 |
| 8003 | 22 |
| 8004 | 33 |
| 8005 | 44 |
| 8006 | 55 |
| 8007 | 66 |
| ... | ... |
流程图

程序
| 地址 | 十六进制代码 | 标签 | 助记符 | 注释 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 指向获取数组大小 | |
| F003 | 4E | MOV C, M | 获取数组大小 | |
| F004 | 23 | INX H | 指向下一个位置 | |
| F005 | 46 | MOV B, M | 获取要搜索的键值 | |
| F006 | 78 | MOV A, B | 将键值放入累加器 | |
| F007 | 23 | LOOP | INX H | 指向下一个位置 |
| F008 | BE | CMP M | 将内存元素与累加器进行比较 | |
| F009 | CA, 19, F0 | JZ FOUND | 当零标志置位时,跳转到FOUND | |
| F00C | 0D | DCR C | 将C减1 | |
| F00D | C2, 07, F0 | JNZ LOOP | 当计数不为0时,跳转到LOOP | |
| F010 | 21, FF, FF | LXI H, FFFF | 将FFFFH加载到HL寄存器对 | |
| F013 | 22, 00, 90 | SHLD 9000H | 存储到9000H | |
| F016 | C3, 1C, F0 | JMP DONE | 跳转到DONE | |
| F019 | 22, 00, 90 | FOUND | SHLD 9000H | 存储到9000H |
| F01C | 76 | DONE | HLT | 终止程序 |
输出
| 地址 | 数据 |
|---|---|
| ... | ... |
| 9000 | 06 |
| 9001 | 80 |
| ... | ... |
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP