Вопрос № 41273: Здрасте! Я вот тут с вопросом (если можно :))?
У меня отладчик полетел что-ли...
Вообщем после каждого выполнения 21 прерывания он пишет
nop
nop
и дальше всякие команды (инога пока еще не понятные мне)
Все кроме дальнейшего...
Вопрос № 41.273
Здрасте! Я вот тут с вопросом (если можно :))?
У меня отладчик полетел что-ли...
Вообщем после каждого выполнения 21 прерывания он пишет
nop
nop
и дальше всякие команды (инога пока еще не понятные мне)
Все кроме дальнейшего описания действий рассматриваемой под ним проги.
По моему ето началось после того как я повозился с программой где
надо было вместо
int 20h
выполнить
9090h
И ещё вопрос не по теме - Я пока новичек во всей широкой области
программирования . я заметил что Языков программирования много
Для того что бы быть вполне востребованным програмистом необходимо знать большинство из них или достаточно владеть каким то минимумом ? Просто я заметил что Олег Калашников владеет чуть ли не всеми ими.
Вот !! Thanks for attantion.
Hope to get an answer...
Отправлен: 25.04.2006, 19:23
Вопрос задал: Moontain (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Пан Павел Константинович
Здравствуйте, Moontain!
Ответ на 1-ый Вопрос:
Мне кажется что выход из этой ситуации прост, надо просто переустановить отладчик или если есть такая возможнасть в нём, то установить установки отладчика по умолчанию. Почему он пишет после каждого выполнения 21h прерывания NOP,NOP здесь есть две догадки, первая это то, что сам отладчик не коректно работает с отлаживаемой программой причин этому множество. Вторая догадка это то, что вы заходите в 21h прерывание, т.е. можно выполнить прерывание без захода в тело или с заход.
Пример:
Условно у нас два отладчика AFDPRO и Turbo Debuger, первый позволяет заходить в прерывание при нажатии кнопки "Выполнение с заходом", а второй этого не делает, а просто переходит на следующию инструкцию отлаживаемой программы.
Вывод: С AFDPRO, мы увидем множество других команд не входящих в состав отлаживаемой программы, это множество представляет из себя прерывание 21h, а вот в Turbo Dubeger мы увидем только команды входящии в состав отлаживаемой программы.
Романтическая догадка:
У вас подменяется 21h прерывание на не известный код, который и делает то что вы говорите, благо в стеке есть адрес вашей отлаживаемой программы, а записать туда данные не составит труда.
Пример:
Резидентная программа, которая шла как ознакомительный материал в рассылке Калашникова.
> По моему ето началось после того как я повозился с программой где
надо было вместо
int 20h
выполнить
9090h
>> Это мало вероятно, потому что вы просто заменяете INT 20h(выход из программы), на NOP(нет операции) т.е. просто не выполняете INT 20h(не выходите из программы), на отладчик и прерывание это не как не павлияет.
Ответ на 2-ый Вопрос:
Это сугубо индивидуально. Чем больше тем лечше НО! с условием что вы во всех языка будете профи.
С, Уважением MnEm0n!C.
--------- Hello Worlds
Ответ отправил: Пан Павел Константинович (статус: 6-ой класс)
Ответ отправлен: 25.04.2006, 23:59