Thursday, 6 August 2015

Sorting of Array



.model small
printmsg macro msg
        push ax
        push dx
        lea dx,msg
        mov ah,09h
        int 21h
        pop dx
        pop ax
endm
.data
       
        msg4 db 0ah,0dh,"Enter the limit$"
        msg1 db 0ah,0dh,"Enter the numbers$"
        a dw 20 dup(0)
        n dw ?
    
        cnt dw 0
        num dw 0
      
       
       
.code
        mov ax,@data
        mov ds,ax

       printmsg msg4
  
        call readnum
        mov cx,num
        mov n,cx
        printmsg msg1
        mov si,00h
     l1:
       
        call readnum
        mov ax,num
        mov a[si],ax
        add si,02h
        loop l1
      
        mov cx,n
        dec cx

     l4: push cx

         mov di,00
       l3: mov ax,a[di]
        cmp ax,a[di+2]
        jng l2
        xchg ax,a[di+2]
        xchg ax,a[di]
      l2:
         add di,02h
         loop l3
         pop cx
         loop l4
         mov cx,n
         mov si,00h

      l6:   mov ax,a[si]
         mov num,ax
         call print
         add si,02h
         loop l6

    l5: mov ah,4ch
        int 21h


readnum proc near
        push ax
        push bx
        push cx
        push dx
        mov num,00h
  next1:

        mov ah,01h
        int 21h
        cmp al,0dh
        je next2
        sub al,30h
        mov cx,ax
        and cx,00ffh
        mov ax,num
        mov bx,10
        mul bx
        mov num,ax
        add num,cx
        jmp next1

  next2:
        pop dx
        pop cx
        pop bx
        pop ax
        ret
readnum endp


print proc near
        push ax
        push bx
        push cx
        push dx
        mov ax,num
        mov bx,10
  next3:
        mov dx,00
        div bx
        push dx
        inc cnt
        cmp ax,00
        jne next3
  next4:
        cmp cnt,00
        je next5
        pop dx
        add dl,30h
        dec cnt
        mov ah,02h
        int 21h
        jmp next4
  next5:
        pop dx
        pop cx
        pop bx
        pop ax
        ret
print endp

   
end





                   

No comments:

Post a Comment