8085程序用于在n个数字的数组中搜索一个数字


在本程序中,我们将了解如何使用8085在字节数组中搜索元素。

问题陈述

编写8085汇编语言程序,使用线性搜索技术在数据数组中搜索一个键值。

讨论

在本程序中,数据存储在8002H到8007H的位置。8000H包含块的大小,8001H保存要搜索的键值。执行此程序后,它将返回找到项目的那个数据的地址,并将该地址存储在9000H和9001H的位置。如果未找到该项目,则返回FFFFH。

如果数据存在于FFFFH内存位置,那么它也会存储FFFFH,所以这是一个模棱两可的情况。我们假设数据未存储在FFFFH,因此我们选择该值来指示数据不存在。

输入

地址数据
......
800006
800155
800211
800322
800433
800544
800655
800766
......


流程图

程序

地址十六进制代码标签助记符注释
F00021, 00, 80
LXI H,8000H指向获取数组大小
F0034E
MOV C, M获取数组大小
F00423
INX H   指向下一个位置
F00546
MOV B, M获取要搜索的键值
F00678
MOV A, B将键值放入累加器
F00723LOOPINX H   指向下一个位置
F008BE
CMP M   将内存元素与累加器进行比较
F009CA, 19, F0
JZ FOUND    当零标志置位时,跳转到FOUND
F00C0D
DCR C   将C减1
F00DC2, 07, F0
JNZ LOOP    当计数不为0时,跳转到LOOP
F01021, FF, FF
LXI H, FFFF将FFFFH加载到HL寄存器对
F01322, 00, 90
SHLD 9000H  存储到9000H
F016C3, 1C, F0
JMP DONE   跳转到DONE
F01922, 00, 90FOUNDSHLD 9000H  存储到9000H
F01C76DONEHLT终止程序


输出

地址数据
......
900006
900180
......

更新于: 2019年7月30日

2K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.