13.08.2020, 12:05 [+3 UTC]
в нашей команде: 4 692 чел. | участники онлайн: 3 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.89 (25.04.2020)
JS-v.1.45 | CSS-v.3.39

Общие новости:
13.04.2020, 00:02

Форум:
02.08.2020, 11:21

Последний вопрос:
12.08.2020, 14:13
Всего: 152773

Последний ответ:
11.08.2020, 14:13
Всего: 260352

Последняя рассылка:
13.08.2020, 01:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
25.11.2009, 20:47 »
Abdugani abdrimov
Отлично, всё получилось! Спасибо всем! [вопрос № 174478, ответ № 256855]
28.05.2019, 02:20 »
svrvsvrv
ОГРОМНОЕ СПАСИБО ЗА ВАШ ОТВЕТ!!! [вопрос № 195737, ответ № 278232]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 305
Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 27
Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 146327
Раздел: • Assembler
Автор вопроса: Бартосик Феликс Михайлович
Отправлена: 07.10.2008, 14:12
Поступило ответов: 0

Здравствуйте!
Позвольте задать пару вопросов.

1) Функция 0СH прерывания 33h, которая задает обработчик для событий мыши. Работает ли она по принципу прерывания 08h. Т.е. могу ли я в головной программе выполнять какой либо цикл – а между любыми строками, при активации мыши, происходит вызов ее подпрограммы. Правильно ли я это понимаю?
2) И если это так, т.е. головная программа прерывается, то кто сохраняет все регистры: ведь в подпрограмму мыши в регистрах передаются координаты и т.д. Когда я пользовался 08h прерыванием, я внутри его обработчика беспокоился о сохранении регистров, которые у него внутри использую. А здесь регистры уже заполнены драйвером мыши. Получается драйвер все сохраняет?

Состояние: Консультация закрыта

Oтветов пока не поступило.

Мини-форум консультации № 146327
Boriss

# 1

= общий = | 08.10.2008, 10:22

Функции прерывания Вы можете вызывать сами по мере необходимости - тогда "между любыми строками"
Но удобнее определить функцию - обработчик прерывания. Она будет вызываться, когда произойдет выбранные событие мыши (при определении такой функции - обработчика нужно указать, на что она должна реагировать).
Лучше всего, если эту функция установит флаг программы (байт, например), и скопирует в переменные программы координаты и прочие параметры. И ВСЕ! Эта функция ничего больше делать не должна (вызов может быть очень частым).
--
О заполнении всего: обратите внимание, что при вызове такой функции регистр DS будет "мышиный" - не Ваш. А все остальные регистры сохраняются

неизвестный

# 2

= общий = | 09.10.2008, 11:20

Boriss. Я вот не понял фразу: А все остальные регистры сохраняются.
Т.е. это "мышиный " драйвер сохраняет нужные регистры? Потом их заполняет своими данными, которые попадают в обработчик (т.е. какую кнопку нажали, координаты и т.д.), и после выхода из обработчика - драйвер восстанавливает регистры. Так ли это? И какие он регистры сохраняет - все, или которые только заполняет?

Boriss

# 3

= общий = | 09.10.2008, 15:26

Я имел в виде, конечно, те регистры, которые не упомянуты в описании функции

Boriss

# 4

= общий = | 09.10.2008, 15:33

В свое время я разбирался, как работает Turbo Vision в Turbo Pascal - пожалуй, для DOS там оптимальная схема обработки сообщений от мыши использована. Если хотите, модуль пришлю - обработчик на ассемблере

Boriss

# 5

= общий = | 09.10.2008, 15:34

В свое время я разбирался, как работает Turbo Vision в Turbo Pascal - пожалуй, для DOS там оптимальная схема обработки сообщений от мыши использована. Если хотите, модуль пришлю - обработчик на ассемблере

неизвестный

# 6

= общий = | 10.10.2008, 10:57

Здравствуйте Boriss!
Если сможете то пришлите на мой ящик (bartoflex@yandex.ru) .
По возможности постараюсь разобраться (опыта еще мало).

Boriss

# 7

= общий = | 10.10.2008, 12:03

Высылаю: спрашиваемое находится в файле G_DRV_11.PAS
Все остальное - пример использования и дополнительные модуля для Borland (Turbo) Pascal
Есть краткое описание в файлах OBJ_SHOW_ANSI.TXT или OBJ_SHOW_DOS.TXT

неизвестный

# 8

= общий = | 10.10.2008, 13:32

Boriss! Спасибо за файлы. Когда вопросы будут спрошу.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14999 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.89 от 25.04.2020
Версия JS: 1.45 | Версия CSS: 3.39