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

 

 

 

 

 

 

 

 

 

更新於: 2019-07-30

3K+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告