52 lines
524 B
NASM
52 lines
524 B
NASM
|
INCLUDE dos_layer.asm
|
||
|
|
||
|
.org 0x100
|
||
|
mov sp,#STACK
|
||
|
MOV SI,#DATA
|
||
|
|
||
|
GNOME_SORT:
|
||
|
CMP SI,#DATA+7
|
||
|
JZ GNOMED
|
||
|
MOV AX,[SI]
|
||
|
INC SI
|
||
|
CMP AH,AL
|
||
|
JAE GNOME_SORT
|
||
|
|
||
|
SWAP:
|
||
|
MOV BL,AL
|
||
|
MOV AL,AH
|
||
|
MOV AH,BL
|
||
|
DEC SI
|
||
|
MOV [SI],AX
|
||
|
CMP SI,#DATA
|
||
|
JZ GNOME_SORT
|
||
|
DEC SI
|
||
|
JMP GNOME_SORT
|
||
|
|
||
|
GNOMED:
|
||
|
MOV SI,#DATA
|
||
|
PRINT_LOOP:
|
||
|
MOV AL,[SI]
|
||
|
call PRINT_0_8_HEX
|
||
|
INC SI
|
||
|
CMP SI,#DATA+8
|
||
|
JNZ PRINT_LOOP
|
||
|
|
||
|
MOV AH,#0x02
|
||
|
MOV DL,#0x0a
|
||
|
INT #0x21
|
||
|
|
||
|
hlt
|
||
|
|
||
|
DATA: DB 0x51, 0x17, 0x37, 0x5d, 0x06, 0x3f, 0x51, 0x8b
|
||
|
|
||
|
.BLKB 200
|
||
|
STACK:
|
||
|
|
||
|
INCLUDE helpers.asm
|
||
|
|
||
|
.ORG 0xFFF0
|
||
|
MOV AX,#0x0100
|
||
|
JMP AX
|
||
|
|