8085微處理器中新增兩個多位元組數的程式


在本節中,我們將看到一個Intel 8085微處理器程式。該程式主要用於新增多位元組數。

問題陳述

編寫一個8085組合語言程式來新增兩個多位元組數。

討論

我們使用4位元組數。這些數字儲存在記憶體位置8501H和8505H中。一個額外的資訊儲存在位置8500H。在這裡,我們儲存位元組計數。結果儲存在位置85F0H。

HL對儲存第一個運算元位元組的地址,DE儲存第二個運算元位元組的地址。C儲存位元組計數。我們使用堆疊來儲存結果的中間位元組。完成加法運算後,我們從堆疊中彈出並存儲到目標位置。

輸入

地址
資料


8500
04
8501
19
8502
68
8503
12
8504
85
8505
88
8506
25
8507
17
8508
20


 

流程圖

 

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
31, 00, 20
 LXI SP,2000H
初始化堆疊指標
F003
21, 00, 85
 LXI H,8500H
載入記憶體地址以獲取位元組計數
F006
4E
 MOV C,M
將記憶體內容載入到C暫存器
F007
06, 00
 MVI B,00H
清除B暫存器
F009
21, 01, 85
 LXI H, 8501H
載入第一個引數地址
F00C
11, 05, 85
 LXI D, 8505H
載入第二個引數地址
F00F
1A
LOOP
LDAX D
使用第二個運算元地址載入DE
F010
8E
 ADC M
將記憶體內容和進位與累加器相加
F011
F5


PUSH PSW
將累加器內容儲存到堆疊中
F012
04


INR B
推入堆疊後增加b
F013
23


INX H
增加HL對以指向下一個地址
F014
13


INX D
增加DE對以指向下一個地址
F015
0D


DCR C
減少c,直到所有位元組都未耗盡
F016
C2, 0F, F0


JNZ LOOP
當位元組未被考慮時,再次迴圈
F019
D2, 20, F0


JNC SKIP
當進位=0時,跳轉到儲存
F01C
3E, 01


MVI A,01H
當進位=1時,將其推入堆疊
F01E
F5


PUSH PSW
將累加器內容儲存到堆疊中
F01F
04


INR B
推入堆疊後增加b
F020
21, F0, 85
SKIP
LXI H,85F0H
載入目標指標
F023
F1
L1
POP PSW
彈出AF以從堆疊中取回位元組
F024
77


MOV M,A
將Acc資料儲存在HL指向的記憶體位置
F025
23


INX H
增加HL對以指向下一個地址
F026
05


DCR B
減少B
F027
C2, 23, F0


JNZ L1
轉到L1以儲存堆疊內容
F02A
76


HLT
終止程式


輸出

地址
資料


85F0
00
85F1
A5
85F2
29
85F3
8D
85F4
A1


更新於: 2019年10月9日

5K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告