8085 微處理器多位元組 BCD 數減法程式
在這裡,我們將看到一個可以使用 8085 微處理器對多位元組 BCD 數進行減法的程式。
問題陳述−
編寫一個 8085 組合語言程式來減去兩個多位元組 BCD 數。
討論−
這些數字儲存在記憶體中,並且還儲存了一個額外的資訊。它將向我們顯示多位元組 BCD 數的位元組數。這裡我們選擇 3 位元組 BCD 數。它們儲存在 8001H 到 8003H 位置,另一個數字儲存在 8004H 到 8006H 位置。8000H 位置儲存位元組數。在這種情況下,位元組數為 03H。
對於減法,我們使用 10 的補碼方法進行減法。
在這種情況下,數字為:672173 – 275188 = 376985
輸入
地址 | 資料 |
---|---|
… | … |
8000 | 03 |
8001 | 73 |
8002 | 21 |
8003 | 67 |
8004 | 88 |
8005 | 51 |
8006 | 27 |
… | … |
流程圖
程式
地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
---|---|---|---|---|
F000 | 21, 00, 80 | LXI H,8000H | 指向獲取計數的位置 | |
F003 | 4E | MOV C,M | 將計數獲取到 C | |
F004 | 11, 01, 80 | LXI D,8001H | 指向第一個數字 | |
F007 | 21, 04, 80 | LXI H,8004H | 指向第二個數字 | |
F00A | 37 | STC | 設定進位標誌 | |
F00B | 3E, 99 | LOOP | MVI A,99H | 將 99H 載入到 A |
F00D | CE,00 | ACI 00H | 將 00H 和進位與 A 相加 | |
F00F | 96 | SUB M | 從 A 減去 M | |
F010 | EB | XCHG | 交換 DE 和 HL | |
F011 | 86 | ADD M | 將 M 加到 A | |
F012 | 27 | DAA | 十進位制調整 | |
F013 | 77 | MOV M,A | 將 A 儲存到記憶體 | |
F014 | EB | XCHG | 交換 DE 和 HL | |
F015 | 23 | INX H | 透過 HL 指向下一個位置 | |
F016 | 13 | INX D | 透過 DE 指向下一個位置 | |
F017 | 0D | DCR C | 將 C 減 1 | |
F018 | C2, 0B, F0 | JNZ LOOP | 如果 Z = 0,則跳轉到 LOOP | |
F01B | 76 | HLT | 終止程式 |
輸出
地址 | 資料 |
---|---|
… | … |
8001 | 85 |
8002 | 69 |
8003 | 37 |
… | … |
廣告