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