Реферат: Разработка программы рисования линий с помощью мыши

ВВЕДЕНИЕ

В В В В В В В В  РњРѕР№ курсовойпроект РїРѕСЃРІ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>щаетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> созданию программы, рисующей линии междуконтурными точками, расставл<st1:PersonName w:st=«on»>СЏ</st1:PersonName>емыми вместах, РіРґРµ была нажата лева<st1:PersonName w:st=«on»>СЏ</st1:PersonName> кнопкамыши. Это простейший пример, способный показать, что РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>демонстрации некоторых функций работы мыши актуальным <st1:PersonName w:st=«on»>СЏ</st1:PersonName>РІР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>етс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>применение <st1:PersonName w:st=«on»>СЏ</st1:PersonName>зыка программировани<st1:PersonName w:st=«on»>СЏ</st1:PersonName> «Ассемблер».

Мышь – устройство РІРІРѕРґР°, получившееочень большую РїРѕРїСѓР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>рность. Труднопредставить себе современный компьютер без мыши или эквивалентного ейуказывающего устройства. Р’ качестве эквивалентного устройства может бытьпланшетка или разного СЂРѕРґР° сенсорные площадки, РіРґРµ управление осуществл<st1:PersonName w:st=«on»>СЏ</st1:PersonName>етс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>пластмассовым карандашом или непосредственно пальцем пользовател<st1:PersonName w:st=«on»>СЏ</st1:PersonName>.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

1 ОБЩИЙ РАЗДЕЛ

Устройство РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ручного РІРІРѕРґР° графической информации РІ вычислительную машину, лишь РјРЅРѕРіРѕ позжеполучившее СЃРІРѕС‘ современное название, было придумано, сконструировано изапатентовано Дугласом Энгельбартом РёР· Стэнфордского университета РІ середине60-ых РіРѕРґРѕРІ прошлого века. Энгельбарт, известный также как автор графическогопользовательского интерфейса Рё РѕРґРёРЅ РёР· первых разработчиков гипертекстовой«РЅРёРІС‹», был пионером, так что дальше довольно РіСЂРѕРјРѕР·РґРєРѕРіРѕ инеудобного прототипа его мысль РЅРµ пошла. Честь превращени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>мыши РёР· РєРѕСЂРѕР±РєРё РЅР° РґРІСѓС… наружных колёсах РІ конструкцию, которую сегодн<st1:PersonName w:st=«on»>СЏ</st1:PersonName> уже начинают забывать — коробочку СЃ шариком, такжевращавшим пару роликов, РЅРѕ помещённых внутри — принадлежит работникамлаборатории Xerox PARC, сделавшим это РІ начале 70-ых РіРі. Наконец, облекли мышкув привлекательную внешне форму Рё выпустили РЅР° массовый рынок исследователишвейцарского НИИ СЃ труднопроизносимым названием (сокращаемым РґРѕ EPFL),работавшие РІ организованной РёРјРё Рё знакомой сегодн<st1:PersonName w:st=«on»>СЏ</st1:PersonName>каждому компании Logitech.

<img src="/cache/referats/21438/image002.jpg" align=«left» hspace=«12» v:shapes="_x0000_s1026"> Шли РіРѕРґС‹, мен<st1:PersonName w:st=«on»>СЏ</st1:PersonName>лисьвнешний РІРёРґ Рё количество РєРЅРѕРїРѕРє (РІ конструкции Энгельбарта была только однаклавиша, Рё этот вариант был сравнительно РїРѕРїСѓР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>рен,РІ частности, РЅР° платформе Mac), Р° принцип работы манипул<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тораоставалс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> прежним. Шарик собиралпыль, механическа<st1:PersonName w:st=«on»>СЏ</st1:PersonName> конструкци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> была инерционной Рё неточной, Рё неудивительно, чтов РѕРґРёРЅ прекрасный день РІ чью-то светлую голову пришла РёРґРµ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>избавитьс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РѕС‚ механики, переложивзадачу слежени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> Р·Р° движени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РјРё СЂСѓРєРё пользовател<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅР° плечи электроники Рё оптики. Ранний период развити<st1:PersonName w:st=«on»>СЏ</st1:PersonName>варианта мыши, получившей название оптической, СЃРІ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>зываютс именем неутомимого американского предпринимател<st1:PersonName w:st=«on»>СЏ</st1:PersonName>Стивена Кирша (известного, РІ частности, как основатель Infoseek Corp.). Это онпридумал Рё запатентовал РІ начале 80-ых РіРѕРґРѕРІ манипул<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тор,определ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>вший направление движени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> СЃ помощью простого оптического сенсора. Мышь Киршамогла работать только РЅР° специальном металлическом РєРѕРІСЂРёРєРµ, покрытом сеткойтёмных полос: РѕРЅР° освещала РєРѕРІСЂРёРє Рё следила Р·Р° <st1:PersonName w:st=«on»>СЏ</st1:PersonName>ркостьюотражений, определ<st1:PersonName w:st=«on»>СЏ<st1:PersonName w:st=«on»></st1:PersonName>СЏ</st1:PersonName>траекторию РїРѕ пересечени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>Рј полос. <img src="/cache/referats/21438/image004.jpg" align=«left» hspace=«12» v:shapes="_x0000_s1027">В 

Ранн<st1:PersonName w:st=«on»>СЏ<st1:PersonName w:st=«on»></st1:PersonName>СЏ</st1:PersonName>эта конструкци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> так Рё РЅРµ получиламассового признани<st1:PersonName w:st=«on»>СЏ</st1:PersonName>. Потребовалисьещё почти двадцать лет развити<st1:PersonName w:st=«on»>СЏ</st1:PersonName>электроники, РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> того чтобыоптические мыши смогли составить конкуренцию СЃРІРѕРёРј механическим предкам.Впрочем, современные оптические мыши устроены РІРѕ РјРЅРѕРіРѕРј схоже СЃ киршевской. Онивключают три основных элемента: светодиод, освещающий рабочую площадку,оптический сенсор РІ РІРёРґРµ простейшей матрицы светочувствительных элементов(похожей РЅР° матрицу РІ цифровых фотоаппаратах, РЅРѕ значительно меньшего разрешени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> — примерно 16 С… 16 пикселей), Рё сигнальныймикропроцессор (DSP), умеющий распознавать образы. «Р¤РѕС‚ографиру<st1:PersonName w:st=»on">СЏ</st1:PersonName>" поверхность РїРѕРґ СЃРѕР±РѕР№ полторы тыс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>чи раз РІ секунду, оптическа<st1:PersonName w:st=«on»>СЏ</st1:PersonName>мышь СЃ помощью чипа DSP улавливает смещени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>картинки Рё подаёт соответствующие сигналы компьютеру. Работают такие мышипрактически РЅР° любой поверхности, исключа<st1:PersonName w:st=«on»>СЏ</st1:PersonName>лишь зеркальные, полированные Рё поверхности СЃ крупноволокнистой фактурой.Точность позиционировани<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, почтинулева<st1:PersonName w:st=«on»>СЏ</st1:PersonName> инерционность, отсутствиенеобходимости РІ чистке — РІСЃС‘ это помогло оптическим мышам вытеснить своихпредшественниц СЃ рабочих столов. <img src="/cache/referats/21438/image006.jpg" v:shapes="_x0000_i1025"> И здесь РјС‹ РїРѕРґС…РѕРґРёРј Рє тому, СЃ чего всёсобственно Рё началось. Уже знакома<st1:PersonName w:st=«on»>СЏ</st1:PersonName>вам компани<st1:PersonName w:st=«on»>СЏ</st1:PersonName> Logitech представила наминувшей неделе компьютерную мышь РЅРѕРІРѕР№ конструкции. Строго РіРѕРІРѕСЂ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, Logitech MX1000 Laser Cordless Mouse относитс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> Рє оптическому племени, РЅРѕ вместо светодиода РІ нейустановлен миниатюрный полупроводниковый лазер, улучшена разрешающа<st1:PersonName w:st=«on»>СЏ</st1:PersonName> способность фотосенсора. Принцип действи<st1:PersonName w:st=«on»>СЏ</st1:PersonName> осталс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>прежним, так что РїРѕСЃРІ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>щать емуотдельный абзац нет необходимости. Чем лазерна<st1:PersonName w:st=«on»>СЏ</st1:PersonName>мышь лучше оптической? Абсолютной неприхотливостью: РѕРЅР° СЃРїРѕСЃРѕР±РЅР° работать дажена зеркале благодар<st1:PersonName w:st=«on»>СЏ</st1:PersonName> свойствамлазерного излучени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> Рё новойоптической системе. Тем же самым РѕРЅР° РѕР±<st1:PersonName w:st=«on»>СЏ</st1:PersonName>занаи непревзойдённой точности: MX1000 различает РІ 20 раз больше деталей, чемобычна<st1:PersonName w:st=«on»>СЏ</st1:PersonName> оптическа<st1:PersonName w:st=«on»>СЏ</st1:PersonName> мышь. Стоит така<st1:PersonName w:st=«on»>СЏ</st1:PersonName>машинка почти 80 долларов. Р’РѕРїСЂРѕСЃ РІ том, считать ли лазерную мышь LogitechРЅРѕРІРѕР№ ветвью РЅР° эволюционном древе (авторитет компании — аргумент РІ пользу) илиэто обычный маркетинговый С…РѕРґ СЃ добавлением РЅРёРєРѕРјСѓ РЅРµ нужной функции, РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> того чтобы выделитьс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>средь толпы производителей? Р’ самом деле, зачем вам двадцатикратное улучшение ибез того более чем приемлемой точности?

В В В В В В В В 

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

2 ОПИСАНИЕ УСТРОЙСТВА

2.1 ОПИСАНИЕ МЫШИ

В В В В В В В В  РџРѕРїСѓР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>рность мышек заставила производителей серьезнозадуматьс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> Рѕ модернизации своихпродуктов. Р’ результате РјС‹ получили несколько типов мышек: механических,оптических, беспроводных оптических, беспроводных механических. Р’ механическихмышках РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> определени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> рассто<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРё<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, РЅР° которое РѕРЅР° переместилась, используютс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> механические системы оповещени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, РІ которых механическое вращение вертикальной,горизонтальной Рё диагональной осей преобразуютс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РІ сигналы, передаваемые РЅР° контроллер. Р’ оптических мышках используютс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> мощный светодиод, РїРѕ отражению луча которого отповерхности, РЅР° которой находитс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>мышка рассчитываетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> рассто<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРё<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, накоторое РѕРЅР° переместилась,. Наличием колесика прокрутки уже трудно РєРѕРіРѕ-либоудивить, зато РІ списках рейтингов можно увидеть мультимедийные мышки,сочетающие РІ себе РІСЃРµ приемущества передовых разработок. РџСЂРё использованиитакой мышки каждый палец задействован РІ работе РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ее удобства Рё ускорени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>. Теперь безлишних движений мыши РІС‹ можете сворачивать, разворачивать, закрывать РѕРєРЅР°,управл<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ть проигрывателем музыки иливидео. РџСЂРё просмотре изображений РІС‹ можете без затруднени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>пролистывать РёС…, измен<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ть размеры РёС‚. Рї.

Мышь состоит РёР· 3-С… частей: внешнейоболочки (обычно пластмассовой, РІ области которой наход<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РєРЅРѕРїРєРё Рё колесики прокрутки), блока микросхем(имеет РїСЂ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РјРѕРµ подключение Рє портукомпьютера, передает сигналы РѕС‚ мыши), механической или оптической части(служит РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> определени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> рассто<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРё<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, РЅР° которое мышь переместилась).

В В В В В В В В  Современна<st1:PersonName w:st=«on»>СЏ</st1:PersonName> мышь смогла избавить нас РѕС‚ рутинной работы,лишних движений Рё таких непри<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тныхвещей как чистка механических элементов РѕС‚ накопившейс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РіСЂ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>зи…

В В В В В В В В  РќРµ труднодогадатьс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, что РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> такого набора функций понадоб<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>нестандартные драйверы, (система может установить СЃРІРѕРё версии, РЅРѕ онипредназначены РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> использовани<st1:PersonName w:st=«on»>СЏ</st1:PersonName> лишь стандартных функций. РџРѕ-умолчанию (РІ самыхпоследних верси<st1:PersonName w:st=«on»>СЏ</st1:PersonName>С… операционных систем,таких как WindowsXP, WindowsLonghorn) эти драйверы РјРѕРіСѓС‚ использоватьлевую, правую РєРЅРѕРїРєРё, колесико прокрутки Рё РґРѕ РґРІСѓС… РєРЅРѕРїРѕРє навигации РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> упрощени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>работы РІ сети Интернет.). Их можно найти РІ РєРѕСЂРѕР±РєРµ СЃ устройством. Эти драйверыпозвол<st1:PersonName w:st=«on»>СЏ</st1:PersonName>СЋС‚ мышку работать корректно ииспользовать полный спектр функций, предусмотренных производителем. Р’ панелиуправлени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РЅР° вкладке «Мышь» станов<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>доступными настройки новых функций.

2.2 ПРОГРАММНАЯ МОДЕЛЬ МЫШИ

В В В В В  Р’СЃРµ общение СЃ мышью РІ DOSвыполн<st1:PersonName w:st=«on»>СЏ</st1:PersonName>етс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> через прерывание Р—Р—h, обработчик которого устанавливает драйвер мыши, загружаемый обычнопри запуске сис­темы. Современные драйверы поддерживают около 60 функций,РїРѕР·РІРѕР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ющих настраивать разрешениемыши, профили ускорений, виртуальные координаты, дополнительные обработчикисобытий Рё С‚. Рї. Большинство этих функций требу­ютс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> редко,сейчас рассмотрим основные.

INT33h, РђРҐ=0: Инициализаци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> мыши Р’С…РѕРґ:В В В В  РђРҐ = OOOOhВыход:В В  РђРҐ = OOOOh, если мышь или драйвер мыши РЅРµ установлены

АХ = OFFFFh, если драйвер и мышь установлены

ВХ = числокнопок:

2<span Times New Roman"">        

или OFFFFh — РґРІРµ

3<span Times New Roman"">        

— три

0000 — РґСЂСѓРіРѕРµ количество Выполн<st1:PersonName w:st=«on»>СЏ</st1:PersonName>етс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> аппаратный Рё программный СЃР±СЂРѕСЃ мыши Рё драйвера.

INT33h, AX=1: Показать РєСѓСЂСЃРѕСЂ Р’С…РѕРґ:В В В В  РђРҐ — 000 lh

INT33h, AX= 2: РЎРїСЂ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>татькурсор Р’С…РѕРґ:В В В В  РђРҐ = 0002h

Драйвер мыши поддерживает внутреннийсчетчик, управл<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ющий видимостью РєСѓСЂСЃРѕСЂР° мыши.Функци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> 2 уменьшает значениесчетчика РЅР° единицу, Р° функци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> 1 увеличивает его, РЅРѕ только РґРѕ значени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> 0. Если значение счетчика — отрицатель­ное число, РѕРЅ СЃРїСЂ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тан,если ноль — показан. Это РїРѕР·РІРѕР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>етпроцедурам, использу­ющим РїСЂ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РјРѕР№ вывод РІ видеопам<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ть,вызывать функцию 2 РІ самом начале Рё 1 РІ са­мом конце, РЅРµ забот<st1:PersonName w:st=«on»>СЏ</st1:PersonName>СЃСЊ отом, РІ каком состо<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРёРё был курсормыши Сѓ вызвавшей эту процедурупрограммы.

INT33h, AX= 3: Определить состо<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРёРµ мыши Р’С…РѕРґ:В В В В РђРҐ — РћРћРћР—hВыход:В В  Р’РҐ — состо<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ниекнопок:

Р±РёС‚ 0. нажаталева<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РєРЅРѕРїРєР°

Р±РёС‚ 1: нажатаправа<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РєРЅРѕРїРєР°

Р±РёС‚ 2: нажатасредн<st1:PersonName w:st=«on»>СЏ<st1:PersonName w:st=«on»></st1:PersonName>СЏ</st1:PersonName>РєРЅРѕРїРєР°

РЎРҐ

DX

Х-координата

Y-координата

Возвращаемые координаты совпадают скоординатами пикселов соответству­ющей точки РЅР° экране РІ большинстве графическихрежимов, «роме 04, 05, ODh, 13h, РіРґРµ РҐ-координату мыши нужно разделить РЅР° 2, чтобыполучить номер стол­бца соответствующей точки РЅР° экране. Р’ текстовых режимахoР±Рµ координаты надо разделить РЅР° 8РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> получени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>номера строки Рё столбца соответственно.

Р’ большинстве случаев эта функци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РЅРµ используетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РІ npoграммах, так как РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> того, чтобы реагировать РЅР° нажатие РєРЅРѕРїРєРё или перемещение мыши РІ заданнуюобласть, требуетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>вызывать это прерывание посто<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРЅРѕ,что РїСЂРёРІРѕРґРёС‚ Рє трате процессорного времени. Функции 5 (определить положениекурсора РїСЂРё после­днем нажатии РєРЅРѕРїРєРё), 6 (определить положение курсорапри последнем отпус­кании РєРЅРѕРїРєРё) Рё OBh(определить рассто<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРёРµ,пройденное мшью) РјРѕРіСѓС‚ помочь оптимизировать работу программы, самосто<st1:PersonName w:st=«on»>СЏ</st1:PersonName>тельно «след<st1:PersonName w:st=«on»>СЏ</st1:PersonName>щей»за всеми пере­движени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РјРё мыши, ногораздо эффективнее указать драйверу контролировать ее передвижени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> (чем РѕРЅ, собственно, Рё занимаетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> посто<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРЅРѕ)Рё передавать управ­ление РІ программу, как только выполнитс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> заранее определенное условие, напри­мер пользовательнажмет РЅР° левую РєРЅРѕРїРєСѓ мыши. Такой сервис обеспечивает функци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> 0РЎh — установитьобработчик событий.

INT33h, AX= 0Сh: Установить обработчик событий Вход:      АХ = 000Ch

ES:DX= адрес обработчика СХ = условие вызова

бит 0: любое перемещение мыши

бит 1: нажатиелевой кнопки

бит 2:отпускание левой кнопки

бит 3: нажатиеправой кнопки

бит 4:отпускание правой кнопки

бит 5: нажатиесредней кнопки

Р±РёС‚ 6: отпускание средней РєРЅРѕРїРєРё РЎРҐ = 0000h — отменить обработчик

Обработчик событий должен быть оформлен, как дальн<st1:PersonName w:st=«on»>СЏ<st1:PersonName w:st=«on»></st1:PersonName>СЏ</st1:PersonName>процедура (то есть завершатьс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> командой RETF). РќР° РІС…РѕРґРµ РІ процедуру обработчика РђРҐ содержит условие вызова, Р’РҐ — состо<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РЅРёРµ РєРЅРѕРїРѕРє, РЎРҐ, DX — РҐ- Рё РЈ-координаты РєСѓСЂСЃРѕСЂР°, SI, DI — счетчикипоследнего перемещени<st1:PersonName w:st=«on»>СЏ</st1:PersonName> погоризонтали Рё Вертикали (едини­цы измерени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName> этих счетчиков — РјРёРєРё, 1/200РґСЋР№РјР°), DS — сегмент данных драйвера мыши. Перед завершениемпрограммы установленный обработчик со­бытий должен быть РѕР±<st1:PersonName w:st=«on»>СЏ</st1:PersonName>зательно удален (вызов функции 0РЎhСЃ РЎРҐ= 0). так как иначе РїСЂРё первом же выполнении услови<st1:PersonName w:st=«on»>СЏ</st1:PersonName> управление будет передано РїРѕ адресу РІ пам<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ти, СЃ которого начиналс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>обработчик.

Функци<st1:PersonName w:st=«on»>СЏ</st1:PersonName>0РЎhиспользуетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>так часто, что Сѓ нее РїРѕ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>вилосьнесколько модифи­каций — функци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> 14h, дающа<st1:PersonName w:st=«on»>СЏ</st1:PersonName>возможность установить одновременно три обра­ботчикас разными услови<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РјРё, Рё функци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> 18h, также РїРѕР·РІРѕР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>юща<st1:PersonName w:st=«on»>СЏ</st1:PersonName>установить

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

3 РАЗРАБОТКА АЛГОРИТМА УПРАВЛЕНИЯ МЫШЬЮ

         Схема обработкипрерываний:

Внешнее устройство

Процессор

Контроллер прерываний

Шина данных

Внешнее устройство

Внешнее устройство

Внешнее устройство

NMI

INTA

INTR

<img src="/cache/referats/21438/image007.gif" v:shapes="_x0000_s1028 _x0000_s1029 _x0000_s1030 _x0000_s1031 _x0000_s1032 _x0000_s1033 _x0000_s1034 _x0000_s1035 _x0000_s1036 _x0000_s1037 _x0000_s1038 _x0000_s1039 _x0000_s1040 _x0000_s1041 _x0000_s1042 _x0000_s1043 _x0000_s1044 _x0000_s1045 _x0000_s1046 _x0000_s1047 _x0000_s1048 _x0000_s1049 _x0000_s1050 _x0000_s1051 _x0000_s1052 _x0000_s1053 _x0000_s1054 _x0000_s1055 _x0000_s1056 _x0000_s1057 _x0000_s1058 _x0000_s1059 _x0000_s1060 _x0000_s1061 _x0000_s1062">


В В В В В В В В  Обработкапрерываний осуществл<st1:PersonName w:st=«on»>СЏ</st1:PersonName>етс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> СЃ помощью специального процессора, РїСЂРѕРёР·РІРѕРґ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>щего предварительную обработку запросов РЅР° прерывани<st1:PersonName w:st=«on»>СЏ</st1:PersonName>. Выбираетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>запрос СЃ наибольшим приоритетом, Р° затем уже обращаетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>Рє процессору, С‚.Рµ. РЅР° выходе INTRподключен контроллер прерываний, Р° Рє нему уже подключаетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> внешнее устройство. Немаскируемое прерывание СЃРІ<st1:PersonName w:st=«on»>СЏ</st1:PersonName>зано СЃ процессором. Таймер обращаетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> Рє процессору напр<st1:PersonName w:st=«on»>СЏ</st1:PersonName>РјСѓСЋ.Запрос РЅР° прерывание внешнее устройство посылает РЅР° контроллер прерываний,который затем посылает запрос РїРѕ линии INTRРЅР° процессор, анализирующий флагпрерывани<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, если РѕРЅ равен 1, то полинии INTAидетподтверждение готовности обработать запрос. После этого через шину данных контроллерпрерываний формирует команду INTСЃ соответствующим номером прерывани<st1:PersonName w:st=«on»>СЏ</st1:PersonName>.Далее процессор обрабатывает эту команду Рё передает управление РЅР° обработчикпрерывани<st1:PersonName w:st=«on»>СЏ</st1:PersonName>, который взаимодействуетс устройством, вызвавшим это прерывание через шину данных Рё адреса, Р° такжечерез порты, Рє которым подсоединено устройство Рё его контроллер.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

4 РАЗРАБОТКА И РЕАЛИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

      Дл<st1:PersonName w:st=«on»>СЏ</st1:PersonName> работы моей программытребуетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> IBMсовместимый компьютер РЅР° базе процессораIntelРё люба<st1:PersonName w:st=«on»>СЏ</st1:PersonName> возможна<st1:PersonName w:st=«on»>СЏ</st1:PersonName>техническа<st1:PersonName w:st=«on»>СЏ</st1:PersonName> конфигураци<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>запуска операционной системы DOS. Программа занимает РЅРµ более 500 байт оперативной пам<st1:PersonName w:st=«on»>СЏ</st1:PersonName>ти. Также потребуетс<st1:PersonName w:st=«on»>СЏ</st1:PersonName>предварительно откомпилированный исполн<st1:PersonName w:st=«on»>СЏ</st1:PersonName>емыйфайл программы. Пользователю нужно запустить программу Рё нажать левую кнопкумышки РІ разных местах экрана РґР»<st1:PersonName w:st=«on»>СЏ</st1:PersonName>проверки работоспособности программы. Если между точками РІ которых былипроизведены нажати<st1:PersonName w:st=«on»>СЏ</st1:PersonName> рисуютс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> лини, то программа работает корректно.

      Исходный код программы представлен в приложении А.

      Блок-схема представлена в приложении Б.

В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В В 

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

5 ОТЛАДКА И ИСПЫТАНИЕ ПРОГРАММЫ

В В В В В В В В  Перед запускомпрограммы следует убедитьс<st1:PersonName w:st=«on»>СЏ</st1:PersonName> РІ том,что Рє компьютеру подсоединена мышь, включить компьютер, запустить программу РІ16-битной среде, нажать левую РєРЅРѕРїРєСѓ мыши РІ разных местах экрана. Программаможет работать некорректно РїСЂРё условии несоблюдени<st1:PersonName w:st=«on»>СЏ</st1:PersonName>вышеуказанных условий.</spa

еще рефераты
Еще работы по программированию, базе данных