Professional Documents
Culture Documents
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