Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 620
от 05.12.2006, 13:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 367, Экспертов: 27
В номере:Вопросов: 5, Ответов: 5


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное