Поиск максимального и минимального значения массива на ассемблере (emu 8086), должен работать с отрицательными числами

Данный алгоритм не работает с отрицательными числами в массиве, что можно сделать?

include 'emu8086.inc'
 .MODEL SMALL
.stack 256
.data
n equ 15
a db 10,2,6,8,4,6,9,56,40,200,56,45,81,65,7
max dw 0
min dw 255
.code  
MOV AX, @DATA
MOV DS, AX  ; установить регистр DS, на начало сегмента данных
xor si,si
mov bl,a[si]
mov cx,14
m1:
mov bl,a[si]
cmp bx,max
jng I
mov max,bx
I:mov bl,a[si]
cmp bx,min
jnl J                                                                   

mov min,bx
J:inc si
loop m1
mov ax,max
CALL print_num
gotoxy 0,2
mov ax,min
CALL print_num
    mov ax, 4c00h ; exit to operating system.
    int 21h    
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
END

Ответы (0 шт):