Перейти к содержимому

jane6699

jane6699

Регистрация: 24.05.2013, 08:22
Offline Активность: 24.05.2013, 08:28
-----

В теме: Ассемблер

24.05.2013, 08:29:32

Насчет цикла:
"
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 какой оператор используется?

Чтобы не было бесконечного цикла, в процедуре Write_byte_hex нужно СХ поместить в стек, то есть, в первой строке процедуры поместить команду PUSH CX, а перед ret POP CX.

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.