8085微处理器线性查找程序


我们将学习如何在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
当Z标志设置时,跳转到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


 

 

更新于:2019年10月5日

555 次查看

启动你的职业生涯

完成课程获得认证

开始学习
广告