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 次檢視

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告