Z-80 中无重叠的块移动


在本节中,我们将了解如何使用 Zilog Z-80 微处理器将一段数据块移动到另一个位置。有一个假设,源地址和目标地址之间有足够的距离。因此,块是不重叠的。基本上,块移动不是精确的移动,而是将数据复制到其他位置。

块中项目的数量位于 5000H 位置,该块位于 5050H 位置。

因此,在移动之前,内存中的项目如下所示。

地址
5000H04H

.
.
.
5050H89H
5051H7AH
5052H2FH
5053H56H

.
.
.

现在,我们正在 8000H 位置编写一个程序以将块内容移动到其他位置。

程序

地址十六进制代码标签助记符注释
800021 00 50
LD HL, 5000H将 HL 对加载为 5000H
8003DD 21 50 50
LD IX, 5050H将索引寄存器设置为 5050H
8007DD 7E 00LOOPLD A, (IX+00H)将累加器加载为 IX + 00H
800ADD 77 20
LD (IX+20H), A将累加器的内容加载到 IX + 20H
800DDD 23
INC IX增加索引寄存器
800F35
DEC (HL)减少由 HL 对指向的内存位置的内容
8010C2 07 80
JP NZ, LOOP当零标志关闭时跳转到 Loop
801376
HALT停止程序

输出

地址
5000H04H

.
.
.
5050H89H
5051H7AH
5052H2FH
5053H56H

.
.
.
5070H89H
5071H7AH
5072H2FH
5073H56H

.
.
.

更新于: 2020-06-26

117 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.