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