CS401 Assignment 1
CS401 Assignment 1
[org 0x0100]
jmp start
id: db 2,2,0,4,2,1,0,8,5
greater: db 0
subtractResult: db 0,0,0,0,0,0,0,0,0
sortResult: db 0,0,0,0,0,0,0,0,0
swap: db 0
start:
mov cx, 9
mov bl, 0
mov si, id
up:
mov al, [si]
cmp al, bl
jl next
mov bl, al
next:
inc si
dec cx
jnz up
mov [greater], bl
mov si, id
mov di, 0
mov cx, 9
mov bl, 0
subroutine:
mov al, [si]
mov bl, [greater]
sub bl, al
mov [subtractResult + di], bl
mov [sortResult + di], bl
inc si
inc di
dec cx
jnz subroutine
main:
mov si, 0
mov byte [swap], 0
inner:
mov al, [bx + si]
cmp al, [bx + si + 1]
jbe noswap
noswap:
add si, 1
cmp si, cx
jne inner
cmp byte [swap], 1
je main
mov ax, 0x4c00
int 0x21