Чтобы не было бесконечного цикла, в процедуре Write_byte_hex нужно СХ поместить в стек, то есть, в первой строке процедуры поместить команду PUSH CX, а перед ret POP CX.Насчет цикла:
"
Disp_line:
xor bx,bx ; Обнуление BX
mov cx,16 ; Счетчик байтов
.M: mov dl, [Sector+bx] ; Получить 1 байт
call Write_byte_hex ; Вывод шестнадцатеричного числа
mov DL, ' ' ; вывод на экран пробела
call Write_char
inc bx ; возврат за следующим байтом
loop .M
"
Вроде все правильно mov cx,16 - т.е. счетчик установлен. Я конечно потом попытаюсь через Дебаггер, но не думаю, что это поможет.
Вы скомпилировали через NASM, если да, то через какой (номер)? Вы скомплировали, через C:\>nasm Dispsec.asm -o Dispsec.com ?
Вы не знаете как это прописать в MASM, чтобы два файла отдельно скомпилировать, т.е. в MASM вместо оператора %include какой оператор используется?
jane6699
jane6699
Регистрация: 24.05.2013, 08:22Offline Активность: 24.05.2013, 08:28