基於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 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告