Program to perform bubble sort in ascending order in 8085 Microprocessor


Here we will see one 8085 program to arrange a block of numbers in ascending order.

Problem Statement 

Write an 8085 program to sort numbers in ascending order where n number of numbers are stored in consecutive memory locations starting from 8041H and the value of n is available in memory location 8040H (Using BUBBLE sort).

Discussion 

In this program we will arrange the numbers in bubble sorting technique. In this sorting technique, it will be executed in different pass. In each pass the largest number is stored at the end of the list. Here we are taking the numbers from location 8041H to 8046H. The array size is stored at 8040H.

Input

Address
Data


8040
06
8041
06
8042
05
8043
04
8044
01
8045
02
8046
03


 

Flow Diagram

Program

Address
HEX Codes
Labels
Mnemonics
Comments
8000
21, 40, 80
START
LXI H, 8040H
Pointer to the IN-BUFFER
8003
16, 00


MVI D, 00H
The D register is used as a flag register
8005
4E


MOV C, M
Initialize reg. C with data count
8006
0D


DCR C
Set Reg. C for comparison count
8007
23


INX H
Pointing to the next location
8008
7E
CHECK
MOV A, M
Get the number
8009
23


INX H
Go to next location
800A 
BE


CMP M
Compare the contents of the current memory location with the contents of the accumulator
800B 
DA, 14, 80


JC NEXTBYT
If (A) < second byte, do not exchange
800E 
46


MOV B, M
Get second byte for exchange
800F 
77


MOV M, A
Store first byte in second location
8010
2B


DCX H
Point to first location
8011
70


MOV M, B
Store second byte in first location
8012
23


INX H
Get ready for next comparison
8013
16, 01


MVI D, 01H
Load 1 in D as a remainder for exchange
8015
0D
NEXTBYT
DCR C
Decrement comparison count
8016
C2, 08, 80


JNZ CHECK
If comparison count not 0, go back
8019
7A


MOV A, D
Get flag bit in A
801A 
0F


RRC
Place flag bit D0 in carry
801B 
DA, 00, 80


JC START
If flag is 1, exchange occurred
801E 
76


HLT
Terminate the program

 

Output

Address
Data


8041
01
8042
02
8043
03
8044
04
8045
05
8046
06


Updated on: 09-Oct-2019

335 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements