Z-80中的多字节数字加法

现在,在本节中,我们将看到如何使用Zilog Z-80微处理器添加多字节数字。

在此示例中,我们使用4字节数字(56 2F 7A 89)16和(21 FB A9 AF)16

首先,我们在内存中存储字节数,然后存储不同段中的数字(从最低有效字节到最高有效字节)。因此,在存储数据之后,内存结构将如下所示

地址
5000小时04小时




5050小时89小时
5051H7AH
5052H2FH
5053H56小时




5070小时美国空军
5071HA9H
5072H跳频
5073H21小时




现在,我们正在8000H位置编写一个程序,以将这两个4字节数字相加并将结果存储在5090H以后的位置。

程序

地址十六进制代码标签助记符评论
800037
SCF设置进位标志
80013楼
CCF补充进位标志
800221 00 50
LD HL,5000小时向HL对加载5000h
8005DD 21 50 50
LD IX,5050H将5050设置到索引寄存器IX
8009DD 7E 00循环LD A,(IX + 0H)IX + 00H的负载累加器
800度DD 8E 20
ADC A(IX + 20H)用acc加上IX + 20H并进位
800FDD 77 40
LD(IX + 40H),A将累加器数据存储在IX + 40H
8012DD 23
第九届增加IX寄存器
801435
DEC(HL)减少存储内容,指针由HL对
8015C2 09 80
JP NZ,LOOP跳转到循环,直到它为0
8018D2 20 80
JP NC,完成如果“进位”标志关闭,请转到“完成”
801BDD 36 40 01
LD(IX + 40H),01将01H存储在IX + 40H位置
801F76
停止暂停程序
8020DD 36 40 00完成LD(IX + 40H),00将00H存储在IX + 40H位置
802476
停止暂停程序

输出结果

地址
5000小时04小时




5050小时89小时
5051H7AH
5052H2FH
5053H56小时




5070小时美国空军
5071HA9H
5072H跳频
5073H21小时




5090小时38小时
5091H24小时
5092H2BH
5093H78小时
5094H00小时