8085 微處理器中查詢兩個給定位元組的 HCF 程式
在這裡,我們將瞭解如何使用 8085 查詢兩個給定位元組的 HCF 或 GCD。這些數字是 8 位數字,不超過此大小。
問題陳述−
編寫一個 8085 組合語言程式,以查詢儲存在記憶體位置 8000H 和 8001H 中的兩個數字的 HCF 或 GCD。
討論−
這裡我們將使用歐幾里得演算法來查詢 HCF。此演算法非常簡單。我們必須遵循以下步驟−
- 如果第一個數字和第二個數字相同,則
a) 轉到步驟 3。
否則,如果第一個數字 < 第二個數字,則
b) 交換 no1 和 no2。
- 第一個數字 ← 第一個數字 – 第二個數字;轉到步驟 1
- 將結果顯示為第一個數字
這些值儲存在位置 8000H 和 8001H 中,結果將儲存在位置 8050H 中。
輸入
第一個輸入
| 地址 | 資料 |
|---|---|
| … | … |
| 8000 | 2D |
| 8001 | 69 |
| … | … |
| 8050 | 0F |
| … | … |
第二個輸入
| 地址 | 資料 |
|---|---|
| … | … |
| 8000 | 25 |
| 8001 | 35 |
| … | … |
| 8050 | 01 |
| … | … |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 | |
|---|---|---|---|---|---|
| F000 | 21, 00, 80 | | LXI H,8000H | 指向第一個數字 | |
| F003 | 7E | | MOV A,M | 將第一個數字載入到累加器 | |
| F004 | 23 | | INX H | 指向下一個位置 | |
| F005 | 46 | | MOV B,M | 載入第二個數字 | |
| F006 | B8 | LOOP | CMP B | 將 B 與 A 比較 | |
| F007 | CA, 17, F0 | | JZ STORE | 當 A 和 B 相同時,儲存結果 | |
| F00A | DA, 11, F0 | | JC EXG | 如果 B > A,則交換 B 和 A | |
| F00D | 90 | | SUB B | 如果 B < A,則從 A 中減去 B | |
| F00E | C3, 06, F0 | | JMP LOOP | 跳轉到 LOOP | |
| F011 | 48 | EXG | MOV C,B | 將 B 載入到 C | |
| F012 | 47 | | MOV B,A | 將 A 移動到 B | |
| F013 | 79 | | MOV A,C | 將 C 移動到 A | |
| F014 | C3, 06, F0 | | JMP LOOP | 跳轉到 LOOP | |
| F017 | 32, 50, 80 | STORE | STA 8050H | 將值儲存到記憶體中 | |
| F01A | 76 | | HLT | 終止程式 | |
| | | | | | |
輸出
第一個輸出
| 地址 | 資料 |
|---|---|
| … | … |
| 8050 | 0F |
| … | … |
第二個輸出
| 地址 | 資料 |
|---|---|
| … | … |
| 8050 | 01 |
| … | … |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP