![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() ![]() |
![]() |
taric |
![]()
Сообщение
#1
|
Гость ![]() |
Народ пожалуста помогите!!!!
Нужно написать резидентную програму которая при запуске воспринимала ключи. Например: reside.com /q - вигружает програму из памяти |
Dark |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Берусь попробовать
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
xds |
![]()
Сообщение
#3
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Эх, тряхнём стариной
![]() З.Ы. Советую почитать какой-нибудь мануал по DOS, ту часть, которая касается резидентных программ и мультиплексного прерывания. Сообщение отредактировано: xds - 12.10.2004 18:23 Прикрепленные файлы ![]() -------------------- The idiots are winning.
|
Dark |
![]()
Сообщение
#4
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
По моему немного проще:
; Эта программа будет проверять, находиться ли она уже в памяти, и показывать Сообщение отредактировано: volvo - 13.01.2009 21:00 -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
xds |
![]()
Сообщение
#5
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если после установки твоего резидента у какой-нибудь программы в момент IRQ 1 будет AX = 0ACDCh, то она действительно станет DEAD. А если AX = 0AAAAh, то ей конечно в пору кричать - но этого никто не услышит (MS не гарантирует сохранность значений регистров, не используемых для передачи параметров) :P
Возможно я преувеличиваю, тем не менее, твоя программа использует достаточно опасную стратегию (вероятность серьёзной ошибки уже по условию не равна 0). -------------------- The idiots are winning.
|
Dark |
![]()
Сообщение
#6
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
ИМХО - сильно преувеличиваешь, а вот одна бага есть - в момент установки прерывания если к нему будет обращение, то будут глюки =) там еще насо ограничивать текст CLI и STI
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
xds |
![]()
Сообщение
#7
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
CLI и STI не нужны, т. к.:
a) о них обязан позаботиться сам системный вызов DOS (ah = 25h / int 21h); б) при входе в обработчик прерывания (программного или аппаратного) процессор сам обнуляет флаг IF, а при выходе (по iret) - восстанавливает вместе с другими флагами. Т. е., к моменту передачи управления на обработчик int 21h, прерывания и так будут запрещены. -------------------- The idiots are winning.
|
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 15:58 |