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

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


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

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

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

Выпуск № 226
от 01.09.2005, 20:59

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


Вопрос № 25397: Здравствуйте, уважаемый эксперты. Прошу помощи в следующем вопросе: Написал прогу на WinAsme, которая меняет 9-е исключение, переходит на нулевое кольцо вызовом int 9, затем возвращает старое значение исключения. В исключениии я читаю данные ...

Вопрос № 25.397
Здравствуйте, уважаемый эксперты.
Прошу помощи в следующем вопросе:
Написал прогу на WinAsme, которая меняет 9-е исключение, переходит на нулевое кольцо вызовом int 9, затем возвращает старое значение исключения. В исключениии я читаю данные из порта и передаю их в вызывающую программу через регистр cl. В eax на выходе передается регистр CR0 (зачем!?, понятия не имею). Для задания интервала опроса порта использую объект-событие. Для передачи данных на другую машину - сокетную связь из другого треда этой программы. Вроде-бы все работает, но иногда машина виснет, толи из-за моей программы, толи еще из-за чего. Система Win98.
Вопрос: Как правильно передавать данные в обработчик исключения и читать из него, может блок памяти можно как-то использовать? Можно ли менять в исключении регист ecx?
Заранее благодарю за ответ.
Отправлен: 27.08.2005, 13:52
Вопрос задал: Аксенов Николай Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Bob Johnson
Здравствуйте, Аксенов Николай Николаевич!
Windows 98 может и просто так повиснуть без видимых на то причин :)
вообще же, если тебе нужно корректно попадать на 0-е кольцо, то лучше всего написать vxd-драйвер, в котором выполнять все требуемые операции. вызывать какие-либо функции драйвера (с передачей ей параметров и возвращению обратно результата) можно с помощью api функции DeviceIoControl. Краткое руководство по тому, как создать драйвер для windows 9х есть у меня на странице в разделе файлов.
http://bobjohnson.nm.ru
на счет того, какие регистры можно менять в обработчике особого случая - все. и еще, почему ты выбрал именно 9-е, а не 3-е (как обычно) прерывание? в мануале от пентиума это исключение стоит как reserved, не уверен, что его стоит использовать.
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 27.08.2005, 17:59
Оценка за ответ: 5
Комментарий оценки:
А где можно найти реально описание существующих обработчиков и их номера?


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


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

В избранное