org 256 ;--- B len equ 423 start: xor ax, ax cwd mov bx, array mov si,len-1 push si ; zde je na zasobniku ulozen index maximalniho cisla ; push si nastavi vychozi hodnotu na posledni byte seznamu ; to je nutne pro pripad, ze je cely seznam z 0, pak totiz ; neni nikdy splnena podminka na test na maximalni hodnotu ismin: mov al,[bx+si] ; pri prvnim spusteni se nastavi al a di na posledni prvek :) mov di,si search: cmp al,[bx+si] ; test na minimalni hodnotu jnbe ismin notmin: cmp [bx+si],dl ; test na maximalni hodnotu jbe notmax mov dl,[bx+si] pop bp ; uloz index maximalniho prvku, nutne delat pres ; pop push (misto mov) kvuli vychozi hodnote, ktera musi byt 423 (obecne len) push si notmax: dec si jns search mov cx,3 push di ; MaxIndex je jiz ulozen, nyni uloz MinIndex push dx ; uloz MaxValue print: call dump mov al,' ' int 29h pop ax loop print ;--- A dump: mov bx,10 again: xor dx,dx div bx push dx test ax,ax jz exit call again exit: pop ax add al,'0' int 29h ret array incbin 'sojarray.bin'