在本节中,我们将看到如何使用Zilog Z-80微处理器将数据块移动到另一个位置。有一个假设,即源和目标之间有足够的距离。因此,块是不重叠的。基本上,块移动不是精确的移动,它是将数据复制到其他位置。
块中的项目数在位置5000H处给出,而块在位置5050H处给出。
因此,在移动之前,内存中的项目看起来像这样。
地址 | 值 |
---|---|
5000小时 | 04小时 |
。 。 。 | |
5050小时 | 89小时 |
5051H | 7AH |
5052H | 2FH |
5053H | 56小时 |
。 。 。 |
现在,我们正在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 77 20 | LD(IX + 20H),A | IX + 20H时Acc的负载量 | |
800D | DD 23 | 第九届 | 增加索引寄存器 | |
800F | 35 | DEC(HL) | 减少存储位置的内容,以HL对指向 | |
8010 | C2 07 80 | JP NZ,LOOP | 零标志关闭时跳转到循环 | |
8013 | 76 | 停止 | 停止程序 |
输出结果
地址 | 值 |
---|---|
5000小时 | 04小时 |
。 。 。 | |
5050小时 | 89小时 |
5051H | 7AH |
5052H | 2FH |
5053H | 56小时 |
。 。 。 | |
5070小时 | 89小时 |
5071H | 7AH |
5072H | 2FH |
5073H | 56小时 |
。 。 。 |