8085程式:兩個8位數的除法
在本程式中,我們將瞭解如何使用8085微處理器將兩個8位數相除。
問題陳述
編寫8085組合語言程式,將兩個8位數相除,並將結果儲存在地址8020H和8021H處。
討論
8085沒有除法運算。要得到除法的結果,我們應該使用重複減法的方法。
使用此程式,我們將得到商和餘數。8020H將儲存商,8021H將儲存餘數。
我們將資料儲存在8000H和8001H地址處。結果儲存在8050H和8051H地址處。
輸入
The Dividend: 0EH
The Divisor 04H
The Quotient will be 3, and the remainder will be 2
流程圖
程式
地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
---|---|---|---|---|
F000 | 21,0E, 00 | START | LXIH,0CH | 將8位被除數載入到HL暫存器對中 |
F003 | 06,04 | MVIB,04H | 將除數載入到B中以執行num1 / num2 | |
F005 | 0E,08 | MVIC, 08 | 初始化計數器 | |
F007 | 29 | UP | DADH | 左移1位 HL = HL + HL |
F008 | 7C | MOVA, H | 將H載入到A中 | |
F009 | 90 | SUB B | 執行 A = A – B | |
F00A | DA,0F, F0 | JC DOWN | 如果MSB < 除數,則左移 | |
F00D | 67 | MOVH, A | 如果MSB > 除數,則將A的當前值儲存到H中 | |
F00E | 2C | INR L | 跟蹤商 | |
F00F | 0D | DOWN | DCRC | 遞減計數器 |
F010 | C2,07, F0 | JNZ UP | 如果未耗盡,則再次執行 | |
F013 | 22,20, 80 | SHLD 8020 | 將結果儲存在8020 H處 | |
F016 | 76 | HLT | 停止 |
輸出
地址 | 資料 |
---|---|
. . . | . . . |
8020 | 03 |
8021 | 02 |
. . . | . . . |
廣告