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