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 |
| ... | ... |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP