8085程序交换内存中的一块字节


在这个程序中,我们将了解如何使用8085交换一块字节。

问题陈述

编写8085汇编语言程序来交换一块数据,其中块大小已知。

讨论

数据存储在地址8010H到8019H和9010H到9019H。地址8000H存储要交换的字节数。

逻辑非常简单,HL和DE寄存器对分别指向第一块和第二块数据。通过获取数据,我们只是交换每个内存位置的值。然后重复此过程以完全交换两块数据。

输入

地址数据
......
800006
......
801000
801111
801222
801333
801444
801555
......
901084
901163
901212
901347
901448
9015AD
......


流程图

程序

地址十六进制代码标签助记符注释
F00021, 10, 80
LXI H, 8000H   指向8000H获取字节计数
F0034E
MOV C,M从内存加载计数
F00421, 10, 80
LXI H,8010H指向第一块地址
F00711, 10, 90
LXI D,9010H指向第二块地址
F00A46LOOPMOV B, M将第一块的元素取到B
F00B1A
LDAX D  将第二块的元素取到累加器
F00C77
MOV M, A将累加器内容存储到第二块
F00D78
MOV A, B将B加载到A
F00E12
STAX D  存储到第二块
F00F23
INX H   指向第一块的下一个地址
F01013
INX D   指向第二块的下一个地址
F0110D
DCR C   减少计数变量
F012C2, 0A, F0
JNZ LOOP    当块未完成时,跳转到LOOP
F01576
HLT终止程序


输出

地址数据
......
801084
801163
801212
801347
801448
8015AD
......
901000
901111
901222
901333
901444
901555
......

更新于: 2019年7月30日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告