8085程式:兩個8位數的乘法


在這個程式中,我們將學習如何使用8085微處理器將兩個8位數相乘。

問題陳述

編寫8085組合語言程式,將儲存在記憶體位置中的兩個8位數相乘,並將16位結果儲存到記憶體中。

討論

8085沒有乘法運算。為了得到乘法的結果,我們應該使用重複加法的方法。

兩個8位數相乘後,可能會生成1位元組或2位元組的數字,因此我們使用兩個暫存器來儲存結果。

我們將資料儲存在8000H和8001H位置。結果儲存在8050H和8051H位置。

輸入

地址
資料
.
.
.
.
.
.
8000
DC
8001
AC
.
.
.
.
.
.

流程圖

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
21,00, 80

LXIH,8000H
載入第一個運算元地址
F003
46

MOVB, M
將第一個運算元儲存到B暫存器
F004
23

INX H
增加HL暫存器對
F005
AF

XRA A
清零累加器
F006
4F

MOVC, A
將00H儲存到C暫存器
F007
86
LOOP:
ADD M
將記憶體單元與累加器相加
F008
D2,0C, F0

JNC SKIP
當進位標誌為0時,跳過下一任務
F00B
0C

INR C
當進位為1時,增加C暫存器
F00C
05
SKIP:
DCR B
減少B暫存器
F00D
C2,07, F0

JNZ LOOP
當零標誌不為1時,跳轉到迴圈
F010
21,50, 80

LXIH,8050H
載入目標地址
F013
71

MOVM, C
將C暫存器的內容儲存到記憶體
F014
23

INX H
增加HL暫存器對
F015
77

MOVM, A
將累加器的內容儲存到記憶體
F016
76

HLT
終止程式

輸出

地址
資料
.
.
.
.
.
.
8050
93
8051
D0
.
.
.
.
.
.

更新於:2020年6月26日

瀏覽量:1K+

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告