Z-80中多位元組數的加法


在本節中,我們將學習如何使用Zilog Z-80微處理器來進行多位元組數的加法。

在這個例子中,我們使用4位元組數 (56 2F 7A 89)16 和 (21 FB A9 AF)16

在記憶體中,首先,我們將位元組計數儲存,然後將數字(從最低有效位元組到最高有效位元組)儲存在不同的段中。因此,儲存資料後,記憶體結構將如下所示:

地址
5000H04H

.
.
.
5050H89H
5051H7AH
5052H2FH
5053H56H

.
.
.
5070HAFH
5071HA9H
5072HFBH
5073H21H

.
.
.

現在,我們正在8000H位置編寫一個程式來新增這兩個4位元組數,並將結果儲存在5090H及以後的位置。

程式

地址十六進位制程式碼標籤助記符註釋
800037
SCF設定進位標誌
80013F
CCF反轉進位標誌
800221 00 50
LD HL, 5000H將5000h載入到HL暫存器對
8005DD 21 50 50
LD IX, 5050H將5050H載入到IX索引暫存器
8009DD 7E 00LOOP:LD A, (IX+0H)將IX+00H的內容載入到累加器A
800CDD 8E 20
ADC A, (IX+20H)將IX+20H的內容與累加器A和進位標誌相加
800FDD 77 40
LD (IX+40H), A將累加器A的內容儲存到IX+40H
8012DD 23
INC IXIX暫存器加1
801435
DEC (HL)HL暫存器對指向的記憶體單元減1
8015C2 09 80
JP NZ, LOOP如果零標誌為0,跳轉到LOOP
8018D2 20 80
JP NC, DONE如果進位標誌為0,跳轉到DONE
801BDD 36 40 01
LD (IX+40H), 01將01H儲存到IX+40H
801F76
HALT程式停止
8020DD 36 40 00DONE:LD (IX+40H), 00將00H儲存到IX+40H
802476
HALT程式停止

輸出

地址
5000H04H

.
.
.
5050H89H
5051H7AH
5052H2FH
5053H56H

.
.
.
5070HAFH
5071HA9H
5072HFBH
5073H21H

.
.
.
5090H38H
5091H24H
5092H2BH
5093H78H
5094H00H

更新於:2019年7月30日

瀏覽量:184

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告