8085微處理器中查詢資料陣列中最小數的程式
在這個程式中,我們將學習如何使用8085查詢一組位元組中最小的數字。
問題陳述
編寫8085組合語言程式,以查詢一組位元組中最小的數字。
討論
在這個程式中,資料從8001H地址開始儲存。8000H地址儲存著資料塊的大小。程式執行完畢後,最小值將儲存在9000H地址。
邏輯很簡單,我們首先將第一個數字載入到暫存器B中。在每次迭代中,我們從記憶體中讀取數字並將其儲存到暫存器A中。然後,如果B > A,則我們將A的值更新到B,否則繼續進行下一次迭代。這樣我們就可以找到一組位元組中最小的數字。
輸入
| 地址 | 資料 |
|---|---|
| ... | ... |
| 8000 | 06 |
| 8001 | 55 |
| 8002 | 22 |
| 8003 | 44 |
| 8004 | 11 |
| 8005 | 33 |
| 8006 | 66 |
| ... | ... |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 指向獲取陣列大小的地址 | |
| F003 | 4E | MOV C, M | 獲取陣列大小 | |
| F004 | 23 | INX H | 指向實際陣列 | |
| F005 | 46 | MOV B, M | 將第一個數字載入到B暫存器 | |
| F006 | 0D | DCR C | C暫存器減1 | |
| F007 | 23 | LOOP: | INX H | 指向下一個位置 |
| F008 | 7E | MOV A, M | 將下一個數字從記憶體移動到累加器 | |
| F009 | B8 | CMP B | 比較累加器和B暫存器 | |
| F00A | D2, 0E, F0 | JNC SKIP | 如果B <= A,則跳過 | |
| F00D | 47 | MOV B, A | 如果進位標誌CY為1,則更新B暫存器 | |
| F00E | 0D | SKIP: | DCR C | C暫存器減1 |
| F00F | C2, 07, F0 | JNZ LOOP | 當計數器不為0時,跳轉到LOOP | |
| F012 | 21, 00, 90 | LXI H,9000H | 指向目標地址 | |
| F015 | 70 | MOV M, B | 儲存最小值 | |
| F016 | 76 | HLT | 程式結束 |
輸出
| 地址 | 資料 |
|---|---|
| ... | ... |
| 9000 | 11 |
| ... | ... |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP