8085程式:16位數除以8位數
在這個程式中,我們將學習如何用8位數除一個16位數。
問題陳述
編寫8085組合語言程式,將16位數除以8位數。
討論
在這個程式中,我們從8000H和8001H讀取16位數。8000H儲存低位位元組,8001H儲存高位位元組。8002H儲存8位除數。除法運算後,16位商儲存在8050H和8051H,餘數儲存在8052H。
輸入
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | 2B |
| 8001 | CA |
| 8002 | 53 |
| . . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 指向8000H地址 | |
| F003 | 7E | MOV A, M | 儲存低位位元組 | |
| F004 | 23 | INX H | 增加HL對指向下一個位置 | |
| F005 | 46 | MOV B, M | 儲存高位位元組 | |
| F006 | 23 | INX H | 增加HL對指向下一個位置 | |
| F007 | 4E | MOV C, M | 載入除數 | |
| F008 | 04 | INR B | 增加B暫存器 | |
| F009 | 21, 00, 00 | LXI H,0000H | 將0000H儲存到HL對 | |
| F00C | 91 | LOOP | SUB C | 從累加器中減去C |
| F00D | DA, 14, F0 | JC SKIP | 當CY=1時跳轉到SKIP | |
| F010 | 23 | INCR | INX H | 增加商部分 |
| F011 | C3, 0C, F0 | JMP LOOP | 跳轉到LOOP | |
| F014 | 05 | SKIP | DCR B | 減小B |
| F015 | CA, 1B, F0 | JZ STORE | 當Z=1時跳轉到STORE | |
| F018 | C3, 10, F0 | JMP INCR | 跳轉到INCR | |
| F01B | 81 | STORE | ADD C | 將C與累加器相加 |
| F01C | EB | XCHG | 交換DE和HL對的內容 | |
| F01D | 21, 50, 80 | LXI H,8050H | 載入目標地址 | |
| F020 | 73 | MOV M,E | 儲存低位商 | |
| F021 | 23 | INX H | 增加HL對 | |
| F022 | 72 | MOV M,D | 儲存高位商 | |
| F023 | 23 | INX H | 增加HL對 | |
| F024 | 77 | MOV M,A | 儲存餘數 | |
| F025 | 76 | HLT | 終止程式 |
輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8050 | 6F |
| 8051 | 02 |
| 8052 | 2E |
| . . . | . . . |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP