8085程序交换10个字节


在这个程序中,我们将看到如何使用8085交换10字节数据块。

问题陈述

编写8085汇编语言程序以交换数据块,其中块大小为10。

讨论

数据存储在8010H到8019H和9010H到9019H的位置。位置8000H保存要交换的字节数。在这种情况下,字节数为10D,因此将为0AH。

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

输入

地址
数据
.
.
.
.
.
.
8000
0A
.
.
.
.
.
.
8010
00
8011
11
8012
22
8013
33
8014
44
8015
55
8016
66
8017
77
8018
88
8019
99
.
.
.
.
.
.
9010
84
9011
63
9012
12
9013
47
9014
48
9015
AD
9016
BC
9017
2A
9018
8F
9019
99
.
.
.
.
.
.


流程图

程序

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

LXI H, 8000H  
指向8000H获取字节计数
F003
4E

MOV C, M
从内存加载计数
F004
21, 10, 80

LXI H,8010H
指向第一个块地址
F007
11, 10, 90

LXI D,9010H
指向第二个块地址
F00A
46
LOOP
MOV B, M
将第一个块的元素取到B
F00B
1A

LDAX D  
将第二个块的元素取到累加器
F00C
77

MOV M, A
将累加器内容存储到第二个块
F00D
78

MOV A, B
将B加载到A
F00E
12

STAX D  
存储到第二个块
F00F
23

INX H  
指向第一个块的下一个地址
F010
13

INX D  
指向第二个块的下一个地址
F011
0D

DCR C  
减少计数变量
F012
C2, 0A, F0

JNZ LOOP    
当块未完成时,跳转到LOOP
F015
76

HLT
终止程序


输出

地址
数据
.
.
.
.
.
.
8010
84
8011
63
8012
12
8013
47
8014
48
8015
AD
8016
BC
8017
2A
8018
8F
8019
99
.
.
.
.
.
.
9010
00
9011
11
9012
22
9013
33
9014
44
9015
55
9016
66
9017
77
9018
88
9019
99
.
.
.
.
.
.

更新于: 2019-07-30

3K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.