34 lines
868 B
Plaintext
34 lines
868 B
Plaintext
mov ax,6FFFh
|
|
mov bx,3456h
|
|
mov cx,0
|
|
|
|
;We'll consider these sorted when ax <= bx <= cx.
|
|
|
|
SortRegisters proc
|
|
cmp ax,bx
|
|
jbe continue
|
|
;if we got here, ax > bx. We don't know the relationship between bx and cx at this time.
|
|
cmp ax,cx
|
|
jbe swap_ax_and_bx
|
|
;if we got here, ax > bx, and bx > cx. Therefore all we need to do is swap ax and cx, and we're done.
|
|
xchg ax,cx
|
|
jmp endOfProc
|
|
|
|
swap ax_and_bx:
|
|
;if we got here, ax > bx, and ax <= cx. So all we have to do is swap ax and bx, and we're done
|
|
xchg ax,bx
|
|
jmp end ;back to top
|
|
|
|
|
|
continue: ;if we got here, ax <= bx.
|
|
cmp bx,cx
|
|
jbe end
|
|
;if we got here, ax <= bx, and bx > cx. Therefore all we need to do is swap bx and cx, and we're done.
|
|
xchg bx,cx
|
|
|
|
|
|
endOfProc: ;if we got here, ax <= bx, and bx <= cx. Therefore, ax <= bx <=cx and we are done.
|
|
;
|
|
|
|
SortRegisters endp
|