基于8085微处理器选择进行冒泡排序的程序


在这里,我们将看到一个 8085 微处理器程序,该程序将根据我们的选择帮助将数字按升序或降序排列。使用冒泡排序技术进行排序。

问题陈述

编写一个 8085 汇编语言程序,对一组数据执行冒泡排序操作,并根据选择将其排列成升序或降序。

讨论

在这个程序中,我们根据某个选择将一些数字排列成升序或降序。我们将选择存储在地址 A000H。如果选择值为 00H,则数据将按升序排序,否则将按降序排序。8000H 存储块大小,8001H 及其后续地址存储数据。

输入

第一个输入

地址
数据


8000
06
8001
22
8002
55
8003
33
8004
66
8005
44
8006
11


A000
00


第二个输入

地址
数据


8000
06
8001
22
8002
55
8003
33
8004
66
8005
44
8006
11


A000
45


 

流程图

程序

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


LXI SP,9000H
初始化堆栈
F003
21, 00, 80


LXI H,8000H
指向获取块大小
F006
4E


MOV C,M
获取计数
F007
0D


DCR C
将 C 减 1
F008
1E, 01
L1
MVI E,01H
E 将存储一次遍历中交换次数加 1
F00A
41


MOV B,C
存储比较次数
F00B
23


INX H
指向下一个位置
F00C
7E
L2
MOV A,M
将内存加载到 A
F00D
23


INX H
指向下一个位置
F00E
BE


CMP M
将内存元素与 A 比较
F00F
F5


PUSH PSW
将 AF 存储到堆栈中
F010
3A, 00, A0


LDA A000
获取选择
F013
FE, 00


CPI 00H
将选择与 00H 比较
F015
CA, 1F, F0


JZ ASC
如果 Z = 1,则按升序排序
F018
F1


POP PSW
从堆栈中弹出 AF
F019
D2, 29, F0


JNC SKIP
如果 CY = 0,则跳转到 SKIP
F01C
C3, 23, F0


JMP EXG
否则跳转到交换
F01F
F1
ASC
POP PSW
从堆栈中弹出 AF
F020
DA, 29, F0


JC SKIP
如果 CY = 1,则转到跳过
F023
56
EXG
MOV D,M
将内存加载到 D
F024
77


MOV M,A
将 A 加载到内存
F025
2B


DCX H
指向前一个位置
F026
72


MOV M,D
将 D 加载到内存
F027
23


INX H
指向下一个位置
F028
1C


INR E
增加交换次数
F029
05
SKIP
DCR B
将 B 减 1
F02A
C2, 0C, F0


JNZ L2
如果 Z = 0,则转到 L2 循环
F02D
1D


DCR E
将 E 寄存器减 1
F02E
CA, 38, F0


JZ DONE
如果 Z = 1,则终止程序
F031
21, 00, 80


LXI H,8000H
指向块的初始地址
F034
0D


DCR C
减少计数
F035
C2, 08, F0


JNZ L1
如果 Z = 0,则转到 L1
F038
76
DONE
HLT
终止程序

 

输出

第一个输出

地址
数据


8000
06
8001
11
8002
22
8003
33
8004
44
8005
55
8006
66



第二个输出

地址
数据


8000
06
8001
66
8002
55
8003
44
8004
33
8005
22
8006
11


更新于:2019年10月9日

315 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.