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

启动您的职业生涯

完成课程获得认证

开始学习
广告