8085 无重叠块移动


在这个程序中,我们将了解如何将数据块从一个位置移动到另一个位置。

问题陈述

编写 8085 汇编语言程序以移动数据块。假设这些块不重叠。给出块大小,块从 X 开始,我们必须将其移动到位置 Y。

讨论

无重叠块移动相对来说是一项简单的任务。这里块从位置 X 开始,我们必须将其移动到位置 Y。位置 Y 远离 X。所以 Y > X + 块大小。

在这个程序中,数据存储在 8010H 位置,我们将将其放置在 9010H。块大小存储在 8000H 位置。

我们将源地址加载到 HL 对中,将目标地址加载到 DE 寄存器对中。我们只是从源获取数据并将其放置在目标位置。

输入

地址
数据
.
.
.
.
.
.
8000
07
.
.
.
.
.
.
8010
11
8011
22
8012
33
8013
44
8014
55
8015
66
8016
77
.
.
.
.
.
.

流程图

程序

地址
十六进制代码
标签
助记符
注释
F000
21,00, 80


LXIH, 8000H
加载查找块大小的位置
F003
4E


MOVC, M
将块大小存储到 C 寄存器中
F004
21,10, 80


LXI H, 8010H
将源地址加载到 HL 对中
F007
11,10, 90


LXI D, 9010H
将目标地址加载到 DE 对中
F00A
7E
LOOP
MOV A, M
将累加器加载到内存元素中
F00B
12


STAX D
将累加器内容存储到 D 指向的内存中
F00C
13


INX D
增加 DE 寄存器对
F00D
23


INX H
增加 HL 寄存器对
F00E
0D


DCR C
减少 C 寄存器
F00F
C2,0A, F0


JNZ LOOP
跳转到循环
F012
76


HLT
终止程序


输出

地址
数据
.
.
.
.
.
.
8000
07
.
.
.
.
.
.
8010
11
8011
22
8012
33
8013
44
8014
55
8015
66
8016
77
.
.
.
.
.
.
9010
11
9011
22
9012
33
9013
44
9014
55
9015
66
9016
77
.
.
.
.
.
.

更新于: 2019年7月30日

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告