![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.12.2010
Сообщений: 30
|
![]()
Имеем небольшой резидентик. Как организовать выгрузку по нажатью клавиши?
Код:
Последний раз редактировалось triest; 10.06.2011 в 16:38. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
![]()
Поставить обработчик на прерывание от клавиатуры (irq1, или int9). Словить в нем нажатие клавиши. Убрать все свои обработчики. Освободить руками все выделенные для программы блоки памяти, включая psp и прочее (на паскале это делать будет очень геморно, к слову). Ну и сделать iret из обработчика на прощание.
P.S. Суровый у тебя резидент, такие вещи в обработчике прерывания таймера делать :D Ну и непонятно, зачем этот эзотерический инлайн. В общем, работать эта штука не будет. Последний раз редактировалось Son Of Pain; 10.06.2011 в 19:59. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 18.12.2010
Сообщений: 30
|
![]() Цитата:
![]() Лучше на примере ловлю прерывания клавиатуры и очистку памяти. ![]() |
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
![]()
Она не может работать по определению. Как минимум потому что процедуры, обрабатывающие прерывания, должны объявляться в паскале со спецификатором interrupt;, тогда они будут завершаться инструкцией iret. Если этого не сделать, произойдет ошибка при первом же вызове обработчика.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.12.2010
Сообщений: 30
|
![]()
Son Of Pain
Жаль. Можете привести пример резидента, выгружающегося по нажатию клавиши? |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пример резидентной программы на Delphi | triest | Общие вопросы Delphi | 2 | 28.05.2011 09:39 |
Вывод в резидентной части программы | bruk_bond | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 12 | 18.12.2009 11:29 |
Создание резидентной программы (обработчик прерывания). | Петруха | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 23.03.2009 16:31 |
Создание резидентной программы | DenisVR | Свободное общение | 2 | 07.11.2007 19:42 |