8085程式用於除兩個16位數
在這裡,我們將瞭解如何使用 8085 除兩個 16 位數。
問題陳述
編寫 8085 組合語言程式來除兩個 16 位數。
討論
8085 沒有除法運算。要執行除法,我們必須使用重複減法。要執行 16 位除法,我們必須對暫存器對執行相同的操作。因為暫存器對用於儲存 16 位資料。
除數儲存在 FC00 和 FC01 位置,被除數儲存在 FC02 和 FC03。除法後,商將儲存在 FC04 和 FC05,餘數將儲存在 FC06 和 FC07。
輸入
| 地址 | 資料 |
|---|---|
| FC00 | 8A |
| FC01 | 5C |
| FC02 | 5A |
| FC03 | 1D |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 01, 00, 00 | | LXI B,0000H | 清除 BC 暫存器對 |
| F003 | 2A, 02, FC | | LHLD FC02H | 首先將除數放入 HL |
| F006 | EB | | XCHG | 交換 DE 和 HL |
| F007 | 2A, 00, FC | | LHLD FC00H | 獲取被除數 |
| F00A | 7D | LOOP | MOV A,L | 將 L 載入到 A |
| F00B | 93 | | SUB E | 從 A 中減去 E |
| F00C | 6F | | MOV L,A | 將 A 儲存到 L |
| F00D | 7C | | MOV A,H | 將 H 載入到 A |
| F00E | 9A | | SBB D | 從 A 中減去 B 並帶借位 |
| F00F | 67 | | MOV H,A | 再次將 A 儲存到 H |
| F010 | DA, 17, F0 | | JC SKIP | 如果 CY 為 1,則跳過 |
| F013 | 03 | | INX B | 將 B 增加 1 |
| F014 | C3, 0A, F0 | | JMP LOOP | 跳轉到迴圈 |
| F017 | 19 | SKIP | DAD D | 將 HL 和 DE 相加 |
| F018 | 22, 06, F0 | | SHLD FC06H | 將餘數儲存到 FC06 和 FC07 |
| F01B | 69 | | MOV L,C | 將 C 載入到 L |
| F01C | 60 | | MOV H,B | 將 B 載入到 H |
| F01D | 22, 04, FC | | SHLD FC04H | 將商儲存到 FC04 和 FC05 |
| F020 | 76 | | HLT | 終止程式 |
輸出
| 地址 | 資料 |
|---|---|
| FC04 | 03 |
| FC05 | 00 |
| FC06 | 7C |
| FC07 | 04 |
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP