Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 282
от 09.11.2005, 18:00

Администратор:Калашников О.А.
В рассылке:Подписчиков: 262, Экспертов: 25
В номере:Вопросов: 1, Ответов: 4


Вопрос № 28862: добрый день, уважаемые кодеры! обращаюсь к вам вот с таким вопросом: компиляция программы (из книги уважаемого Калашникова) fasm'ом (fasm for dos, ver. 1.64) проходит успешно, но при запуске программы из xp-ной консоли, винда возвращает ошибку:<b...

Вопрос № 28.862
добрый день, уважаемые кодеры! обращаюсь к вам вот с таким вопросом:
компиляция программы (из книги уважаемого Калашникова) fasm'ом (fasm for dos, ver. 1.64) проходит успешно, но при запуске программы из xp-ной консоли, винда возвращает ошибку:
"процессор NTVDM обнаружил недопустимую инструкцию.
CS:0ddb IP:1220 OP:63 73 65 73 73"
если запускать программу в dosbox, то она просто "виснет".
будьте любезны, подскажите, пожалуйста, что неправильно.
подозреваю, что проблема связана с буфером.
очень признателен за внимание и помощь!

Приложение:

Отправлен: 03.11.2005, 21:10
Вопрос задал: kb_08h (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Sager
Здравствуйте, kb_08h!
С fasm'om я не работал да и под рукой нету, но есть способ проверить на какой инструкции вылазит ошибка. Берешь две команды:
mov ah,10h
int 16h
и поочередно вставляешь после каждой(нескольких) команды, например так:
mov ax,3d00h
mov dx,file_name
int 21h
;--
mov ah,10h
int 16h
Если ошибка вылазит до того, как ты нажмешь какую-либо клавишу - значит ошибка выше, если нет, то убираешь mov ah,10h/int 16h и ставишь на несколько инструкций ниже и тд.(да и еще я не знаю как там у fasm'a, но вроде вместо mov dx,file_name нужно писать lea dx,file_name)
Ответ отправил: Sager (статус: Студент)
Отправлен: 03.11.2005, 21:20

Отвечает: Лысков Игорь Витальевич
Здравствуйте, kb_08h!

Я fasm-ом не пользуюсь, но крепко подозреваю, что
проблема в следующих командах:
buffer equ 0 надо buffer equ $
mov ds,[buffer] тут две ошибки, надо mov dx, buffer
Почему, думаю догадаешься сам :)

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 7-ой класс)
Отправлен: 03.11.2005, 21:43

Отвечает: Undertaker
Здравствуйте, kb_08h!
Не задана точка входа со всеми вытекающими.
Пожалуйста, добавьте в начало инструкцию jmp begin.
Ответ отправил: Undertaker (статус: 5-ый класс)
Отправлен: 04.11.2005, 02:47

Отвечает: Юра Устинов
Здравствуйте, kb_08h!
Программу я вашу не отлаживал, но подскажу с буфером. Вы создали com программу, значит она у вас в реальном режиме, а насколько мне известно, то в реальном режиме вы имеете возможность работать с памятью в пределах сегмента, а значит с 65535 ячейками. Вы же записываете в ваши ячейки 65000 байт, 256 байт PSP - сегментный префикс программы, это уже 65256, и свой код со стеком и данными.
Сомневаюсь что ваша программа будет 279 байт. Советую делать exe-шник там сегменты данных, кода и стека не объединены.
Удачи! FASM - Forever :)
---------
Спасём Россию!!!
Ответ отправил: Юра Устинов (статус: 4-ый класс)
Отправлен: 05.11.2005, 11:57


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Скачай Mail.ru Агент! Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться
Вспомнить пароль

В избранное