; Aman's Bubble sort program. modified by DFW ; Sort n numbers stored at 3001h ; n is stored at 3000 ; for c=n-1; c>0; c-- ; HL=n ; for b=c; b>0; b-- ; if M[HL] < M[HL-1] ; swap(M[HL],M[HL-1] ; HL-- LDA 3000 ;load n DCR A ;n-1 MOV C,A ;C=n-1 outerloop: ;loop n-1 times LDA 3000 ;load n MOV L,A ;L=n MVI H,30 ;HL=30n MOV B,C ;B=C innerloop: ;loop C times MOV A,M ;load M[HL] DCX H ;HL--. CMP M ;M[HL]-M[HL-1]. carry set if M[HL]0 DCR C ;C-- JNZ outerloop ;loop if C>0 HLT ;---Subroutine to swap 2 bytes M[HL],M[HL+1]==A SWAP: MOV E,M ;Etemp=M[HL] MOV M,A ;M[HL]=A INX H ;HL++ MOV M,E ;M[HL(+1)]=Etemp DCX H ;HL-- back to what it was RET