8085程式:查詢10個數中的最大值和最小值
在這個程式中,我們將學習如何在一段資料中找到最大值和最小值。
問題陳述
編寫一個8085組合語言程式,在一個包含十個8位數的資料塊中查詢最大值和最小值。
討論
在這個程式中,我們將資料塊的第一個數字載入到暫存器D和E中。D將儲存最小值,E將儲存最大值。在每次迭代中,我們將檢查數字是否小於D,如果是,則用新數字更新D,然後再次將其與E比較以檢查數字是否大於E。如果是,則用新數字更新E。
輸入
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | 55 |
| 8001 | 22 |
| 8002 | 88 |
| 8003 | 77 |
| 8004 | 11 |
| 8005 | 99 |
| 8006 | 44 |
| 8007 | AA |
| 8008 | 33 |
| 8009 | 66 |
| . . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 載入初始地址 | |
| F003 | 0E, 0A | MVI C,0AH | 載入數字個數 | |
| F005 | 56 | MOV D,M | 從記憶體中載入第一個數字 | |
| F006 | 5A | MOV E,D | 也把第一個數字載入到E | |
| F007 | 23 | INX H | 指向下一個位置 | |
| F008 | 0D | DCR C | 遞減計數 | |
| F009 | 7E | LOOP | MOV A,M | 將記憶體中的數字載入到A |
| F00A | BA | CMP D | 將D與A比較 | |
| F00B | D2, 0F, F0 | JNC SKIP | 如果CY = 0,則A不大於D | |
| F00E | 57 | MOV D,A | 用A更新D | |
| F00F | BB | SKIP | CMP E | 將E與A比較 |
| F010 | DA, 14, F0 | JC DO | 如果CY = 1,則A不大於E | |
| F013 | 5F | MOV E,A | 用A更新E | |
| F014 | 23 | DO | INX H | 指向下一個位置 |
| F015 | 0D | DCR C | C遞減1 | |
| F016 | C2, 09, F0 | JNZ LOOP | 跳轉到迴圈 | |
| F019 | 21, 50, 80 | LXI H,8050H | 指向目標地址 | |
| F01C | 72 | MOV M,D | 儲存最小值 | |
| F01D | 23 | INX H | 指向下一個位置 | |
| F01E | 73 | MOV M,E | 儲存最大值 | |
| F01F | 76 | HLT | 結束程式 |
輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8050 | 11 |
| 8051 | AA |
| . . . | . . . |
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP