Ребят,прокомментируйте плиз по максимуму
Код :
cseg segment
assume cs:cseg,ds:dseg
start:  mov ax,dseg
        mov ds,ax
 
cntn:   xor si,si
        mov cx,n
        dec cx
        mov dl,1        
sort:   mov al,array[si]
        cmp al,array[si+1]
        jnl nxt
        xchg al,array[si+1]
        mov array[si],al
        xor dl,dl      
nxt:    inc si
        loop sort
        or dl,dl       
        jz cntn 
 
    mov si,offset array
    mov cx,n
outpt:  xor ax,ax
    lodsb
    cbw
    call OutInt
    mov ah,02h  
    mov dl,' '
    int 21h
    loop outpt  
 
        mov ax,4c00h
        int 21h
 
OutInt proc
    push ax
    push bx
    push cx
    push dx
 
 
       test    ax, ax
       jns     oi1
       mov  cx, ax
       mov     ah, 02h
       mov     dl, '-'
       int     21h
       mov  ax, cx
       neg     ax
 
oi1:  
        xor     cx, cx
        mov     bx, 10 
oi2:
        xor             dx,dx
        div     bx
        push    dx
        inc     cx
        test    ax, ax
        jnz     oi2
        mov     ah, 02h
oi3:
        pop     dx
        add     dl, '0'
        int     21h
        loop    oi3
    pop dx
    pop cx
    pop bx
    pop ax        
        ret 
OutInt endp  
cseg ends
dseg segment 
array db 3,15,125,4,67
n=$-array
dseg ends
sseg segment stack
db 256 dup(0)
sseg ends 
end start