; array_sort.asm .model small .stack 100h .data array db 5, 3, 8, 4, 2 ; Array to be sorted array_size equ $-array ; Size of the array newline db 0Dh, 0Ah, '$' ; Newline characters for printing space db ' $' ; Space character for printing .code main proc mov ax, @data mov ds, ax mov es, ax ; Initialize pointers lea si, array mov cx, array_size outer_loop: dec cx jz sorted ; If the size is 0, array is sorted mov di, si mov bx, cx inner_loop: mov al, [di] mov ah, [di+1] cmp al, ah jbe no_swap ; Swap elements xchg al, ah mov [di], al mov [di+1], ah no_swap: inc di dec bx jnz inner_loop jmp outer_loop sorted: ; Print sorted array lea si, array mov cx, array_size print_loop: mov al, [si] add al, '0' ; Convert to ASCII mov dl, al mov ah, 02h int 21h ; Print space lea dx, space mov ah, 09h int 21h inc si loop print_loop ; Print newline lea dx, newline mov ah, 09h int 21h ; Terminate program mov ah, 4Ch int 21h main endp end main
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter