Вопрос № 64753: Здравствуйте уважаемые эксперты!
Объясните пожалуйста принцип работы отладчика. Вот к примеру фрагмент кода.
mov ah, 3h
int 10h
mov ah, 2h
mov dx, 1500h
int 10h
После вызова третьей функции в dx зано...Вопрос № 64791: Уважаемые эксперты у меня такая проблема:
Требуется написать резидент который бы через определенный промежуток времени блокировал работу до указания пароля. У меня все готово только когда я пытаюсь вводить пароль (через 0ah) в обработчике 1ch или...Вопрос № 64817: Здравствуйте ! Как на Masm скрыть текущее окно функцией showwindow ? Под винду...Вопрос № 64863: Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, где можно в DOSе найти информацию о параметрах
и функциональных возможностях видеосистемы? Как её интерпретировать? Заранее благодарю....Вопрос № 64920: Здравствуйте ! Не подскажете почему у меня не работают многие winapi функции в Masm ? Просто выскакивает ошибка : .... приложение будет закрыто, приносим извинения и т.д. Тоже самое с функцией exitwindow...
Вопрос № 64.753
Здравствуйте уважаемые эксперты!
Объясните пожалуйста принцип работы отладчика. Вот к примеру фрагмент кода.
mov ah, 3h
int 10h
mov ah, 2h
mov dx, 1500h
int 10h
После вызова третьей функции в dx заносится текущие координаты курсора. Если я запускаю CV или AFDPRO, то вижу только загрузку тройки в старший байт, а как только выполняется 10-е прерывание, то отладчик сразу перепрыгивает на сегмент обработчика этого прерывания и больше из него не выходит. Соответственно я не вижу в dx первичные координаты курсора и также не вижу дальнейшее выполнеие кода, то есть загрузку второй функции с указанием своих координат. Может быть есть какой нибудь способ проигнорировать переход
отладчика на этот сегмент или если он всё таки перепрыгнул, то как вернуться назад и продолжить выполнение кода.
Спасибо!
Отправлен: 29.11.2006, 14:18
Вопрос задал: Paltus (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Вiктор
Приветствую, Paltus!
У отладчиков должны быть команды пошагового режима разных видов - со входом в подпрограммы/предывания и без входа в подпрограммы/прерывания. Посмотрите в справке. (CV, AFDPRO - не видел самих программ, в turbodebougger это F7 (trace into - входить в) и F8 (step over - перешагнуть) ).
Кроме того, есть точки останова (точки прерывания, брейкпоинты, breakpoints).
вы можете поставить точку останова сразу после первого вызова прерывания, на команду "mov ah, 2h", а затем запустить на исполнение (не пошагово). Тогда после того как произойдёт прерывание, выполнится вся работа в прерывании и управление вернётся в главную программу, то управление остановится на точке останова - команде "mov ah, 2h". А с этого момента вы можете дальше идти пошагово.
--------- ни дня без строчки (но не получается)
Ответ отправил: Вiктор (статус: 10-ый класс)
Ответ отправлен: 29.11.2006, 17:36
Вопрос № 64.791
Уважаемые эксперты у меня такая проблема:
Требуется написать резидент который бы через определенный промежуток времени блокировал работу до указания пароля. У меня все готово только когда я пытаюсь вводить пароль (через 0ah) в обработчике 1ch или что-то считывать с клавиатуры компьютер просто напросто зависает. Немного поискав информацию, я увидел следующее:
"Поскольку программа INT 1cH выполняется во время низкоуровневого аппаратного прерывания, вы должны помнить, что система еще не сбросила контроллер прерываний и потому другие аппаратные прерывания, в том числе прерывание от клавиатуры, не будут происходить при работе INT 1cH (т.е. вы не получите ввода пользователя)"
Вопрос: Как же это преодолеть?
PS: Стек точно уравнен, и прерывания нигде не запрещаются
Отправлен: 29.11.2006, 18:13
Вопрос задал: Logoff_ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: IceWolf
Здравствуйте, Logoff_!
Могу предложить следующее:
1)Использовать вместо 1Ch прерывание 8 :см. справочник helpassm(TECH help) http://www.kalashnikoff.ru/Assembler/prog/helpassm.exe
2)Раз нельзя работать с превываниями, сделаем вот что: После вызова 1Ch в стеке лежит адрес возврата(CS и IP и ещё flags register). Сохраняем его в памяти, подменяем на адрес своего кода(выполняется не в обработке 1Ch). Теперь после iret из 1Ch попадаем в наш код(вместо программы где произошло прерывание), делаем свои чёрные дела, восстанавливаем флаги, регистры и делаем jmp на ранее сохранённый адрес. Всё, вернулись в программу. Код, про который я сказал, можно поместить в том же обработчике 1Ch после iret.
Идею я изложил, надеюсь теперь справитесь.
С уважением, IceW0|f.
Приложение:
--------- Идеальных защит не существует, ибо то, что создано человеческим разумом, им же будет и разрушено!
Ответ отправил: IceWolf (статус: 4-ый класс)
Ответ отправлен: 30.11.2006, 23:31
Вопрос № 64.817
Здравствуйте ! Как на Masm скрыть текущее окно функцией showwindow ? Под винду
Отправлен: 29.11.2006, 20:51
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: IceWolf
Здравствуйте, Whiteman!
invoke ShowWindow, hwnd, SW_HIDE
Из MSDN:
SW_HIDE Hides the window and activates another window.
С уважением, IceW0|f.
--------- Идеальных защит не существует, ибо то, что создано человеческим разумом, им же будет и разрушено!
Ответ отправил: IceWolf (статус: 4-ый класс)
Ответ отправлен: 30.11.2006, 22:06
Вопрос № 64.863
Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, где можно в DOSе найти информацию о параметрах и функциональных возможностях видеосистемы? Как её интерпретировать? Заранее благодарю.
Отправлен: 30.11.2006, 02:56
Вопрос задал: Sanya219 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Sergijj
Здравствуйте, Sanya219!
Глянув в минифорум - высылаю:
В приложении - информация по
Sanya219> Расскажите про 1Dh или дайте ссылочку, где можно прочитать инф-ю.
В том же виде могу дать информацию про
Sanya219> вроде в 10h есть ф-я 1Bh, но я не могу найти, её параметры на вход и интерпретацию результата.
(Ибо в один пост - не вмещается)
Приложение:
--------- Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 6-ой класс)
Ответ отправлен: 30.11.2006, 13:57
Вопрос № 64.920
Здравствуйте ! Не подскажете почему у меня не работают многие winapi функции в Masm ? Просто выскакивает ошибка : .... приложение будет закрыто, приносим извинения и т.д. Тоже самое с функцией exitwindow
Приложение:
Отправлен: 30.11.2006, 12:13
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Вiктор
Здравствуйте, Whiteman!
Наверно вы не там задаёте файл:
"If lpFile specifies a document file, lpParameters should be NULL. "
у вас ShellExecute(0, 0, 0,"c:por.doc",0,0); - как раз наоборот.
а надо что-то наподобие этого:
ShellExecute(0, 0, "c:por.doc",0,0,0);
или этого:
ShellExecute(0, "open", "c:por.doc",0,0,0);
попробуйте задавать имя документа не четвёртым параметром, а третьим.
--------- ни дня без строчки (но не получается)
Ответ отправил: Вiктор (статус: 10-ый класс)
Ответ отправлен: 30.11.2006, 13:31