在本节中,我们将看到如何使用Zilog Z-80微处理器交换来自两个不同块的每个元素的内容。
每个块的项目数在位置5000H处给出,而块在位置5050H和5070H处给出。
因此,在交换内存中的项目之前,看起来像这样
地址 | 值 |
---|---|
5000小时 | 04小时 |
。 。 。 | |
5050小时 | 89小时 |
5051H | 7AH |
5052H | 2FH |
5053H | 56小时 |
。 。 。 | |
5070小时 | 美国空军 |
5071H | A9H |
5072H | 跳频 |
5073H | 21小时 |
。 。 。 |
现在,我们正在8000H位置编写程序以交换块内容。
地址 | 十六进制代码 | 标签 | 助记符 | 评论 |
---|---|---|---|---|
8000 | 21 00 50 | LD HL,5000小时 | 向HL对加载5000H | |
8003 | DD 21 50 50 | LD IX,5050H | 将索引寄存器设置为5050H | |
8007 | DD 7E 00 | LD A,(IX + 00H) | 用IX + 00H加载Acc | |
800A | DD 46 20 | LD B,(IX + 20H) | 用IX + 20H加载B | |
800D | DD 70 00 | 循环 | LD(IX + 00H),B | 在IX + 00H加载B寄存器内容 |
8010 | DD 77 20 | LD(IX + 20H),A | 在IX + 20H加载Acc内容 | |
8013 | DD 23 | 第九届 | 增加IX寄存器 | |
8015 | 35 | DEC(HL) | 减少存储内容,指针由HL对 | |
8016 | C2 07 80 | JP NZ,LOOP | 零标志关闭时跳转到循环 | |
8019 | 76 | 停止 | 停止程序 |
输出结果
地址 | 值 |
---|---|
5000小时 | 04小时 |
。 。 。 | |
5050小时 | 美国空军 |
5051H | A9H |
5052H | 跳频 |
5053H | 21小时 |
。 。 。 | |
5070小时 | 89小时 |
5071H | 7AH |
5072H | 2FH |
5073H | 56小时 |
。 。 。 |