You are on page 1of 2

Statement:Write a program to sort given 10 numbers from memory location 2200H in the ascending order Source program: MVI

B, 09 : Initialize counter START : LXI H, 2200H: Initialize memory pointer MVI C, 09H : Initialize counter 2 BACK: MOV A, M : Get the number INX H : Increment memory pointer CMP M : Compare number with next number JC SKIP : If less, don't interchange JZ SKIP : If equal, don't interchange MOV D, M MOV M, A DCX H MOV M, D INX H : Interchange two numbers SKIP:DCR C : Decrement counter 2 JNZ BACK : If not zero, repeat DCR B : Decrement counter 1 JNZ START HLT : Terminate program execution Arrange a set of numbers in descending order. code:
LDA 2500 MOV D, A DCR D begin: LXI H, 2501 MOV C, D loop: MOV A, M INX H CMP M JNC ahead MOV B, M DCX H MOV M, B INX H MOV M, A ahead: DCR C JNZ loop DCR D JNZ begin HLT

note: address location 2500 contains how many numbers there are to be sorted. the numbers are to be stored in address locations 2501 onwards one number per address location. the sorted list will be available after execution in address locations 2501 onwards.

next: 8085

You might also like