8085程式用於加兩個16位數


在本程式中,我們將瞭解如何新增兩個16位數。

問題陳述

編寫8085組合語言程式,以新增儲存在記憶體位置8000H – 8001H和8002H – 8003H中的兩個16位數。

討論

在本程式中,我們使用HL和DE暫存器對指向運算元地址。然後使用ADD運算子新增LSBytes,然後使用ADC運算子新增MSBytes以考慮進位標誌結果。16位結果將儲存在BC暫存器中,並且透過檢查加法後的進位位,我們可以簡單地將1放入記憶體中。

我們取兩個數字BCAD + FE2D = 1BADA

輸入

地址
資料
...
...
8000
AD
8001
BC
8002
2D
8003
FE
...
...


流程圖

程式

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


LXI H,8000H
指向第一個運算元的LSB
F003
11, 02, 80


LXI D,8002H
指向第二個地址的LSB
F006
1A


LDAX D
將Acc載入到DE指向的內容
F007
86


ADD M
將HL指向的記憶體元素與Acc相加
F008
4F


MOV C, A
將LSB結果儲存在C中
F009
23


INX H
指向第一個運算元的下一個位元組
F00A
13


INX D
指向第二個運算元的下一個位元組
F00B
1A


LDAX D
將Acc載入到DE指向的內容
F00C
8E


ADC M
將HL指向的記憶體元素與Acc + Carry相加
F00D
47


MOV B,A
將MSB儲存在B中
F00E
60


MOV H,B
將B移動到H
F00F
69


MOV L,C
將C移動到L
F010
22, 50, 80


SHLD 8050H
將結果儲存在8050H和8051H中
F013
D2, 1B, F0


JNC DONE
跳到結束
F016
3E, 01


MVI A, 01H
將1載入到Acc
F018
32, 52, 80


STA 8052H
將Acc內容儲存到8052H
F01B
76
DONE
HLT
終止程式


輸出

地址
資料
...
...
8050
DA
8051
BA
8052
01
...
...

更新於: 2019年7月30日

15K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告