[org 0x100]
mov di, 0
mov cx, 15
mov bx, 0
mov dx, 0
mov si, 0
L1:
cmp di,cx
je exit
mov al, [array+di]
cmp al, 0
je zeros
jl negatives
jg positive
zeros:
mov [zero+bx], al
add bx, 1
add di,1
jmp L1
negatives:
mov [negative+bx], al
add bx, 1
add di,1
jmp L1
positives:
mov [positive+si], al
add si, 1
add di,1
jmp L1
exit:
mov ax, 0x4c00
int 0x21
array:
db -1, 2, 0, -3, 4
db 5, -6, 0, 7, 8
db 9, 0, -10, 11, 12
rows: dw 3
columns: dw 5
zero: db 0, 0, 0
negative: db 0, 0, 0, 0
positive: db 0, 0, 0, 0, 0, 0, 0, 0