8085 微處理器計算最小公倍數的程式


現在讓我們來看一個 Intel 8085 微處理器的程式。此程式將找到兩個 8 位數的最小公倍數。

問題陳述 -

編寫 8085 組合語言程式,以查詢儲存在 8000H 和 8001H 位置的兩個 8 位數的最小公倍數。

討論 -

在此程式中,我們從 8000H 和 8001H 讀取資料。透過載入數字,我們將它儲存在 C 暫存器中,並清除 B 暫存器。第二個數字載入到累加器中。將 DE 設定為 BC 暫存器的二進位制補碼。此 DE 用於從 HL 對中減去 BC。

方法如下:假設數字為 25 和 15。當我們將第一個數字除以第二個數字時,如果餘數為 0,則第一個數字就是最小公倍數。但是對於這種情況,存在餘數。然後我們將檢查 25 的下一個倍數以檢查可除性。當餘數變為 0 時,程式終止,結果被儲存。

輸入

第一個輸入

地址
資料
.
.
.
.
.
.
8000
03
8001
07
.
.
.
.
.
.

第二個輸入

地址
資料
.
.
.
.
.
.
8000
23
8001
07
.
.
.
.
.
.

流程圖

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
21, 00, 80
 
LXI H, 8000H
指向 8000H 獲取第一個數字
F003
4E
 
MOV C,M
將記憶體元素載入到 C
F004
06, 00
 
MVI B, 00H
清除 B 暫存器
F006
23
 
INX H
指向下一個位置
F007
7E
 
MOV A,M
將第二個數字載入到累加器
F008
2F
 
CMA
取累加器的反碼
F009
5F
 
MOV E,A
將 A 的反碼形式載入到 E
F00A
16, FF
 
MVI D, FFH
載入 00H 的反碼形式
F00C
13
 
INX D
增加 DE 暫存器對
F00D
21, 00, 00
 
LXI H, 0000H
將 0000H 載入到 HL 對中
F010
09
NEXT
DAD B
將 BC 與 HL 相加
F011
22, 50, 80
 
SHLD 8050H
將 HL 內容儲存到 8050H
F014
19
LOOP
DAD D
將 DE 與 HL 相加
F015
D2, 20, F0
 
JNC SKIP
當 CY = 0 時,跳轉到 SKIP
F018
7C
 
MOV A,H
將 H 內容獲取到 A
F019
B5
 
ORA L
將 L 與 A 進行或運算
F01A
CA, 26, F0
 
JZ EXIT
當 HL 為 0000 時,跳轉到 EXIT
F01D
C3, 14, F0
 
JMP LOOP
跳轉到 Loop
F020
21, 50, 80
SKIP
LHLD 8050H
從 8050H 載入 HL
F023
C3, 10, F0
 
JMP NEXT
跳轉到 NEXT
F026
2A, 50, 80
EXIT
LHLD 8050H
將 HL 對儲存為最小公倍數
F029
76
 
HLT
終止程式

 

輸出

第一個輸出

地址
資料
.
.
.
.
.
.
8050
15
8051
00
.
.
.
.
.
.

第二個輸出

地址
資料
.
.
.
.
.
.
8050
3B
8051
01
.
.
.
.
.
.


更新於: 2019-10-05

932 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.