Всем доброго времени суток. Пишу простенький загрузчик, который выводит BMP файл формата 1024x768 256 цветов. Вывожу следующим образом: посекторно читаю дискету в один и тот же участок оп. памяти, оттуда - в видеопамять. Аргументы для вызова прерывания int13h храню в переменных (головка - current_head, сектор - current_sector, дорожка - current_track). После каждого вывода проверяю текущие значения этих переменных. Здесь и возникает проблема: одновременно почему-то работают только 2 проверки, стоит включить третью, не отбражается ничего. Хотя от метки @@ до последнего jnz точно меньше 128 байт. На всякий случай попробовал jnz dword - всё равно не пашет. Я просто теряюсь в догадках, подскажите плиз... Код (Text): ... mov di,0 push 0 pop ds mov dx, [ds:window] ; mov bx, 0 ; установка окна А call dword [ds:dwc] ; @@: ;----------чтение сектора mov ax, 0 ; сегмент mov es,ax ; mov bx, 8400h ; mov ah, 02h ; функция 02h - чтение сектора mov dh, [ds:current_head] ; головка mov dl, 0h ; устройство mov ch, [ds:current_track] ; дорожка mov cl, [ds:current_sector] ; сектор mov al, 1 ; количество int 13h push 0a000h pop es mov cx, 512 mov si, 8400h sector: mov ax, [ds:si] mov [es:di], ax inc si inc di loop sector inc byte [ds:current_sector] ; mov al, [ds:current_sector] ; Читаем 18 секторов xor al,19 ; jnz @B ; inc byte [ds:current_head] ; mov byte [ds:current_sector],1 ; mov al, [ds:current_head] ; Теперь с другой стороны xor al,2 ; jnz word @B ; ;inc byte [ds:current_track] ; ;mov byte [ds:current_sector], 1 ; ;mov byte [ds:current_head], 0 ; Переключаемся на следующую дорожку ;mov al, byte [ds:current_track] ; (ЕСЛИ ЭТОТ БЛОК РАСКОММЕНТИРОВАН, ;xor al,7 ; ТО ПРОГА НЕ РАБОТАЕТ) ;jnz @B ; jmp $ ;---------переменные------------ mode_info: db 256 dup (1) dwc: db 4 dup (2) winA: db 2 dup (3) winB: db 4 current_sector: db 1 dup (5) current_track: db 1 dup (0) current_head: db 1 dup (0) ...