Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.216.190.167] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте. Вот допустим надо написать маленькую программку, которая
при попытке удалить файл или каталог запрашивала бы пароль. Это так, к примеру. Так вот, прав ли я, что хочу воспользоваться для этой цели функцией 13Н прерывания int21H ? То бишь я должен переделать на время действия этой программы стандартный обработчик 13Н и заменить его на свой, так ? Да, и ещё. В стеке сохранить ведь надо ds, dx, cx и флаги, да ? А ещё ? А после завершения моего обработчика вытолкнуть их оттуда ? Прав ли я ? Thanks. |
Сообщ.
#2
,
|
|
|
> Так вот, прав ли я, что хочу
> воспользоваться для этой цели > функцией 13Н прерывания int21H Эта функция была в первой версии DOS, сейчас ее редко используют или не используют вовсе. Но в принципе может контролировать и эту функцию. Вообще же тебе надо обрабатывать следующие функции: ah = 13h - удаление файла (FCB) ah = 41h - удаление файла ah = 3Ah - удаление каталога ax = 713Ah - удалить каталог (LFN) ax = 7141h - удалить файл (LFN) > То бишь я должен переделать на время > действия этой программы стандартный > обработчик 13Н и заменить его на > свой, так ? Да, плюс вышенаписанные функции > В стеке сохранить ведь надо ds, dx, cx и > флаги, да ? А ещё ? > А после завершения моего обработчика > вытолкнуть их оттуда ? В обработчике надо сохранять все изменяемые регистры, кроме регистра флагов. За сохранение его содержимого и восстановление отвечают int и iret Только может быть проблема со стеком внутри твоего обработчика. Можно понадеяться на авось, а можно в обработчике зарезервировать память под собственный стек и работать с ним. > Прав ли я ? В принципе, да! |
Сообщ.
#3
,
|
|
|
Я ж тебе присылал работающую программу....
Добавь функции, которые rivitna указал и сделай вывод вопроса на экран покрасивее.... |
Сообщ.
#4
,
|
|
|
Ну да, кому то легко говорить... Твоя программа конечно же вешает
машину в определённый момент.. Что же они, эти две программы действительно так похожи, чтобы всё сводилось к тому, чтобы что-то просто добавить ? Ну похожи они разве только тем, что эта новая программа тоже вешает всё на свете, как я только ввожу команду...( попробовал её сегодня воплотить, блин ) но это по моей вине... Я приписываю это к своей безграмотности. |
Сообщ.
#5
,
|
|
|
Хм... А как и куда вводится команда?
Не используется ли часом для этого опять 21-е прерывание? |
Сообщ.
#6
,
|
|
|
Если программка виснет, то это скорее из-за того, что в обработчике используются другие программные прерывания или не хватает стека.
В этом случае на одних машинах программа может работать, а на других - виснет, или доводит компьютер до рестарта |
Сообщ.
#7
,
|
|
|
2 Ilyia:
Ты изъясняйся конкретнее, или напиши текст всего обработчика |
Сообщ.
#8
,
|
|
|
Не , вы извините, но зря я затеял этот топик. Мне пока не под силу
сделать эту прогу. Даже если вы, мне объясните, как говорится, где и чё писать, я всё равно пока вряд ли пойму. Надо мне вначале разобраться с простейшими резидентнами, а я,дурак,хочу чтоб всё сразу... Так что извиняйте, но в любом случае спасибо. |
Сообщ.
#9
,
|
|
|
Дело тут не в резидентах, а в исполнении программ, прерываниях. Именно на работу процессора и программ стоит налегать... Тогда станет ясна роль прерываний в этом процессе и особенности их использования.
|
Сообщ.
#10
,
|
|
|
Кстати, мне попадались проги, которые для работы с дисками использовали BIOS Int13h.
|
Сообщ.
#11
,
|
|
|
Да, и ещё - для начинающих програмеров на ASM есть две толковые штуки:
1) TechHelp - Толковый справочник по прерываниям, функциям BIOS&DOS и т.д. 2) VirTech 1.0 - дока по резидентам и другим полезным вещам. Если надо - пришли мне на StormKnight@tut.by свой E-Mail, я их тебе сброшу... Привет из Минска! StormKnight |
Сообщ.
#12
,
|
|
|
Привет из Краснодара !
Честно говоря, я не думал, что так трудно узнать email. Для этого есть иконка со знаком вопроса. TechHelp у меня есть ( респект 7in`у ), вещь хорошая, а вот второе... буду благодарен если пришлёшь, может инте ресное там будет, я сейчас собираю всё, что хоть как-то связано с tsr. |
Сообщ.
#13
,
|
|
|
2 StormKnight: Мне тоже пришли на eujin@mailru.com
|