%macro scall 4
	mov rax,%1;
	mov rdi,%2;
	mov rsi,%3;
	mov rdx,%4;
	syscall
%endmacro

section .data
    msg db "DECENDING ORDER ARRAY ", 10
    msgLen equ $-msg
    msg1 db "ASCENDING ORDER ARRAY ", 10
    msg1Len equ $-msg1
    space db "  "
    spaceLen equ $-msg
    cnt db 5                           
    temp1 db 0   

section .bss
    arr resb 15
    num resb 3
    temp resb 2
    result resb 15
    result1 resb 15

section .text
    global _start
    
_start:
    mov rbp, arr
nextnum:
    scall 0,0, num,3                    
    mov rcx,0
    mov rax,0
    mov rsi,num

up3:
    mov cl,byte[rsi]      
    cmp cl,0aH
    je packed
    cmp cl,39h
    jbe down3
    sub cl,07h

down3:
    sub cl,30H          
    rol al,4
    add al,cl
    inc rsi
    jmp up3

packed:
    mov byte[rbp],al
    inc rbp
    dec byte[cnt]
    jnz nextnum

    scall 1,1,msg,msgLen
    mov cl, 5
loop1:
    mov dl, 4
    mov rsi, arr
loop2:
    mov al, byte[rsi]
    mov bl, byte[rsi+1]
    cmp bl, al
    jbe continue
    
    XCHG [rsi],bl
    mov [rsi+1],bl

continue:
    inc rsi
    dec dl
    jnz loop2
    dec cl
    jnz loop1


    mov rdi, arr
    mov rsi,result
    mov dl,10
    call display
    
    scall 1,1,result,15
    scall 1,1,msg1,msg1Len
      mov cl, 5
loop3:
    mov dl, 4
    mov rsi, arr
loop4:
    mov al, byte[rsi]
    mov bl, byte[rsi+1]
    cmp bl, al
    jg continue1
    
    XCHG [rsi],bl
    mov [rsi+1],bl

continue1:
    inc rsi
    dec dl
    jnz loop4
    dec cl
    jnz loop3

    mov rdi, arr
    mov rsi,result1
    mov dl,10
    call display
    scall 1,1,result1,15
exit:
    mov rax, 60
    mov rdi,0
    syscall
display: 

disp_loop:
    mov cl, 2
    mov al,[rdi]
up1:
    rol al, 4
    mov bl, al
    and al, 0fh
    cmp al, 09
    jbe down1
    add al, 07
down1:
    add al, 30h
    mov byte[rsi], al
    mov al, bl
    inc rsi
    dec cl
    jnz up1

    mov byte[rsi],0AH
    inc rsi
    inc rdi
    dec dl
    jnz disp_loop
ret

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: