WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  ASM
  Прав ли я ?

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Прав ли я ?
Ilyia опубликован 23-01-2002 10:48 MSK   Click Here to See the Profile for Ilyia   Click Here to Email Ilyia  
Здравствуйте. Вот допустим надо написать маленькую программку, которая
при попытке удалить файл или каталог запрашивала бы пароль. Это так,
к примеру. Так вот, прав ли я, что хочу воспользоваться для этой цели
функцией 13Н прерывания int21H ? То бишь я должен переделать на время
действия этой программы стандартный обработчик 13Н и заменить его на
свой, так ? Да, и ещё. В стеке сохранить ведь надо ds, dx, cx и флаги, да ? А ещё ?
А после завершения моего обработчика вытолкнуть их оттуда ?
Прав ли я ? Thanks.
rivitna опубликован 23-01-2002 11:33 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
> Так вот, прав ли я, что хочу
> воспользоваться для этой цели
> функцией 13Н прерывания int21H

Эта функция была в первой версии DOS, сейчас ее редко используют или не используют вовсе. Но в принципе может контролировать и эту функцию.

Вообще же тебе надо обрабатывать следующие функции:
ah = 13h - удаление файла (FCB)
ah = 41h - удаление файла
ah = 3Ah - удаление каталога
ax = 713Ah - удалить каталог (LFN)
ax = 7141h - удалить файл (LFN)

> То бишь я должен переделать на время
> действия этой программы стандартный
> обработчик 13Н и заменить его на
> свой, так ?
Да, плюс вышенаписанные функции

> В стеке сохранить ведь надо ds, dx, cx и
> флаги, да ? А ещё ?
> А после завершения моего обработчика
> вытолкнуть их оттуда ?
В обработчике надо сохранять все изменяемые регистры, кроме регистра флагов. За сохранение его содержимого и восстановление отвечают int и iret

Только может быть проблема со стеком внутри твоего обработчика. Можно понадеяться на авось, а можно в обработчике зарезервировать память под собственный стек и работать с ним.

> Прав ли я ?
В принципе, да!

7in опубликован 23-01-2002 23:43 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Я ж тебе присылал работающую программу....
Добавь функции, которые rivitna указал и сделай вывод вопроса на экран покрасивее....
Ilyia опубликован 24-01-2002 01:17 MSK     Click Here to See the Profile for Ilyia  Click Here to Email Ilyia     
Ну да, кому то легко говорить... Твоя программа конечно же вешает
машину в определённый момент.. Что же они, эти две программы действительно
так похожи, чтобы всё сводилось к тому, чтобы что-то просто добавить ?
Ну похожи они разве только тем, что эта новая программа тоже вешает всё на свете,
как я только ввожу команду...( попробовал её сегодня воплотить, блин )
но это по моей вине... Я приписываю это к своей
безграмотности.
NOPIK опубликован 24-01-2002 04:44 MSK     Click Here to See the Profile for NOPIK  Click Here to Email NOPIK     
Хм... А как и куда вводится команда?
Не используется ли часом для этого опять 21-е прерывание?
rivitna опубликован 24-01-2002 07:39 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
Если программка виснет, то это скорее из-за того, что в обработчике используются другие программные прерывания или не хватает стека.
В этом случае на одних машинах программа может работать, а на других - виснет, или доводит компьютер до рестарта
rivitna опубликован 24-01-2002 07:42 MSK     Click Here to See the Profile for rivitna  Click Here to Email rivitna     
2 Ilyia:
Ты изъясняйся конкретнее, или напиши текст всего обработчика
Ilyia опубликован 24-01-2002 17:24 MSK     Click Here to See the Profile for Ilyia  Click Here to Email Ilyia     
Не , вы извините, но зря я затеял этот топик. Мне пока не под силу
сделать эту прогу. Даже если вы, мне объясните, как говорится,
где и чё писать, я всё равно пока вряд ли пойму. Надо мне вначале
разобраться с простейшими резидентнами, а я,дурак,хочу чтоб всё сразу...
Так что извиняйте, но в любом случае спасибо.
NOPIK опубликован 24-01-2002 17:45 MSK     Click Here to See the Profile for NOPIK  Click Here to Email NOPIK     
Дело тут не в резидентах, а в исполнении программ, прерываниях. Именно на работу процессора и программ стоит налегать... Тогда станет ясна роль прерываний в этом процессе и особенности их использования.
StormKnight опубликован 26-01-2002 13:42 MSK     Click Here to See the Profile for StormKnight  Click Here to Email StormKnight     
Кстати, мне попадались проги, которые для работы с дисками использовали BIOS Int13h.

StormKnight опубликован 26-01-2002 13:48 MSK     Click Here to See the Profile for StormKnight  Click Here to Email StormKnight     
Да, и ещё - для начинающих програмеров на ASM есть две толковые штуки:
1) TechHelp - Толковый справочник по прерываниям, функциям BIOS&DOS и т.д.
2) VirTech 1.0 - дока по резидентам и другим полезным вещам.

Если надо - пришли мне на StormKnight@tut.by свой E-Mail, я их тебе сброшу...

Привет из Минска!
StormKnight

Ilyia опубликован 26-01-2002 18:08 MSK     Click Here to See the Profile for Ilyia  Click Here to Email Ilyia     
Привет из Краснодара !
Честно говоря, я не думал, что так трудно узнать email. Для этого есть
иконка со знаком вопроса. TechHelp у меня есть ( респект 7in`у ), вещь
хорошая, а вот второе... буду благодарен если пришлёшь, может инте
ресное там будет, я сейчас собираю всё, что хоть как-то связано с tsr.
7in опубликован 27-01-2002 21:49 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
2 StormKnight: Мне тоже пришли на eujin@mailru.com :)

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.