现在,在本节中,我们将看到如何使用Zilog Z-80微处理器添加多字节数字。
在此示例中,我们使用4字节数字(56 2F 7A 89)16和(21 FB A9 AF)16
首先,我们在内存中存储字节数,然后存储不同段中的数字(从最低有效字节到最高有效字节)。因此,在存储数据之后,内存结构将如下所示
地址 | 值 |
---|---|
5000小时 | 04小时 |
。 。 。 | |
5050小时 | 89小时 |
5051H | 7AH |
5052H | 2FH |
5053H | 56小时 |
。 。 。 | |
5070小时 | 美国空军 |
5071H | A9H |
5072H | 跳频 |
5073H | 21小时 |
。 。 。 |
现在,我们正在8000H位置编写一个程序,以将这两个4字节数字相加并将结果存储在5090H以后的位置。
地址 | 十六进制代码 | 标签 | 助记符 | 评论 |
---|---|---|---|---|
8000 | 37 | SCF | 设置进位标志 | |
8001 | 3楼 | CCF | 补充进位标志 | |
8002 | 21 00 50 | LD HL,5000小时 | 向HL对加载5000h | |
8005 | DD 21 50 50 | LD IX,5050H | 将5050设置到索引寄存器IX | |
8009 | DD 7E 00 | 循环 | LD A,(IX + 0H) | IX + 00H的负载累加器 |
800度 | DD 8E 20 | ADC A(IX + 20H) | 用acc加上IX + 20H并进位 | |
800F | DD 77 40 | LD(IX + 40H),A | 将累加器数据存储在IX + 40H | |
8012 | DD 23 | 第九届 | 增加IX寄存器 | |
8014 | 35 | DEC(HL) | 减少存储内容,指针由HL对 | |
8015 | C2 09 80 | JP NZ,LOOP | 跳转到循环,直到它为0 | |
8018 | D2 20 80 | JP NC,完成 | 如果“进位”标志关闭,请转到“完成” | |
801B | DD 36 40 01 | LD(IX + 40H),01 | 将01H存储在IX + 40H位置 | |
801F | 76 | 停止 | 暂停程序 | |
8020 | DD 36 40 00 | 完成 | LD(IX + 40H),00 | 将00H存储在IX + 40H位置 |
8024 | 76 | 停止 | 暂停程序 |
输出结果
地址 | 值 |
---|---|
5000小时 | 04小时 |
。 。 。 | |
5050小时 | 89小时 |
5051H | 7AH |
5052H | 2FH |
5053H | 56小时 |
。 。 。 | |
5070小时 | 美国空军 |
5071H | A9H |
5072H | 跳频 |
5073H | 21小时 |
。 。 。 | |
5090小时 | 38小时 |
5091H | 24小时 |
5092H | 2BH |
5093H | 78小时 |
5094H | 00小时 |