Z-80中多位元組數的加法
在本節中,我們將學習如何使用Zilog Z-80微處理器來進行多位元組數的加法。
在這個例子中,我們使用4位元組數 (56 2F 7A 89)16 和 (21 FB A9 AF)16
在記憶體中,首先,我們將位元組計數儲存,然後將數字(從最低有效位元組到最高有效位元組)儲存在不同的段中。因此,儲存資料後,記憶體結構將如下所示:
地址 | 值 |
---|---|
5000H | 04H |
. . . | |
5050H | 89H |
5051H | 7AH |
5052H | 2FH |
5053H | 56H |
. . . | |
5070H | AFH |
5071H | A9H |
5072H | FBH |
5073H | 21H |
. . . |
現在,我們正在8000H位置編寫一個程式來新增這兩個4位元組數,並將結果儲存在5090H及以後的位置。
程式
地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
---|---|---|---|---|
8000 | 37 | SCF | 設定進位標誌 | |
8001 | 3F | CCF | 反轉進位標誌 | |
8002 | 21 00 50 | LD HL, 5000H | 將5000h載入到HL暫存器對 | |
8005 | DD 21 50 50 | LD IX, 5050H | 將5050H載入到IX索引暫存器 | |
8009 | DD 7E 00 | LOOP: | LD A, (IX+0H) | 將IX+00H的內容載入到累加器A |
800C | DD 8E 20 | ADC A, (IX+20H) | 將IX+20H的內容與累加器A和進位標誌相加 | |
800F | DD 77 40 | LD (IX+40H), A | 將累加器A的內容儲存到IX+40H | |
8012 | DD 23 | INC IX | IX暫存器加1 | |
8014 | 35 | DEC (HL) | HL暫存器對指向的記憶體單元減1 | |
8015 | C2 09 80 | JP NZ, LOOP | 如果零標誌為0,跳轉到LOOP | |
8018 | D2 20 80 | JP NC, DONE | 如果進位標誌為0,跳轉到DONE | |
801B | DD 36 40 01 | LD (IX+40H), 01 | 將01H儲存到IX+40H | |
801F | 76 | HALT | 程式停止 | |
8020 | DD 36 40 00 | DONE: | LD (IX+40H), 00 | 將00H儲存到IX+40H |
8024 | 76 | HALT | 程式停止 |
輸出
地址 | 值 |
---|---|
5000H | 04H |
. . . | |
5050H | 89H |
5051H | 7AH |
5052H | 2FH |
5053H | 56H |
. . . | |
5070H | AFH |
5071H | A9H |
5072H | FBH |
5073H | 21H |
. . . | |
5090H | 38H |
5091H | 24H |
5092H | 2BH |
5093H | 78H |
5094H | 00H |
廣告