Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_СистПрогр_ЛР.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.16 Mб
Скачать

17.4 Контрольні запитання

  1. Які є типи сегментів? Для чого призначений кожен тип сегменту?

  2. Як відбувається запис та зчитування інформації в (із) сегмент стеку? Які регістри призначені для роботи зі стеком?

  3. Як можна змінити значення регістра cs? Як можна змінити значення регістра IP?

  4. В яких сегментах можуть розміщуватися дані? Поясніть свою відповідь.

  5. Назвіть всі відомі вам способи задання адреси даних в пам’яті.

ЛАБОРАТОРНА РОБОТА №18

РОБОТА З МАНІПУЛЯТОРОМ “МИША”

18.1 Мета роботи

Освоїти основні функції (позиціонування, визначення поточного положення курсору тощо) і методи роботи з маніпулятором “миша”.

18.2 Теоретичні відомості

Переміщення маніпулятора “миша” виміряються в кроках- це мінімальне переміщення, яке реєструється її давачами (орієнтовно 1/8 мм). Обробка, що викликані зміною положення та натисканням кнопок маніпулятора здійснюється за допомогою обробника якого встановлює драйвер миші, що загружається при запуску системи. Сучасні драйвери підтримують близько 60 функцій, що дозволяють настроювати властивості маніпулятора, профілі прискорень, віртуальні координати, додаткові оброблювачі подій тощо.

Набір функцій для роботи з маніпулятором “миша” через DOS реалізовано за допомогою переривання 33h.

Таблиця 18.1 – Функції переривання 33h

Функція

Опис

1

2

00h

Ініціалізація маніпулятора

01h

Включити зображення курсор маніпулятора

02h

Виключити зображення курсору маніпулятора

03h

Визначити поточне положення курсору маніпулятора

Продовження таблиці 18.1

1

2

04h

Встановити курсор маніпулятора у вказану позицію екрану

05h

Визначити положення курсору при натисканні клавіш

06h

Визначити положення курсору при відпусканні клавіш

07h

Задати діапазон руху курсору маніпулятора по горизонталі

08h

Задати діапазон руху курсору маніпулятора по вертикалі

0Аh

Задати форму курсору в текстовому режимі

0Вh

Визначити вміст лічильника переміщення маніпулятора

18.3 Завдання на роботу

1 Написати програму на Turbo Assembler для виконання завдання відповідно до заданого варіанту з табл.18.2.

Крім того для усіх завдань передбачити коректне завершення роботи програми після натискання клавіші [Esc].

Таблиця 18.2 – Варіанти завдання

Варіант

Завдання

1

2

1

При натисканні клавіш [+],[-] включати/виключати курсор “миші”

2

Виводити на екран координати курсору “миші” в процесі її руху

3

Керувати розташуванням курсору “миші” за допомогою клавіш: [←], [↑], [→], [↓]

4

При натисканні лівої клавіші “миші” відобразити курсор в лівій половині екрану, а при натисканні правої – в правій, використавши у випадку необхідності дзеркальне відображення відносно центру екрану для визначення нових координат курсору маніпулятора

5

За допомогою клавіш [+] та [-] змінювати область руху “миші”

Продовження таблиці 18.2

1

2

6

За допомогою клавіш [+] та [-] змінювати форму курсору “миші”

7

Вивести в правому верхньому куті екрану символ “Х”. При натисканні на цей символ лівою кнопкою маніпулятора завершувати виконання програми

8

Вийти з програми після проходження курсором маніпулятора 10см. по горизонталі

9

Вийти з програми після проходження курсором маніпулятора 8 см по вертикалі

10

Вивести на екран загальну відстань пройдену курсором маніпулятора під час роботи програми

11

Визначити (і вивести на екран) чутливість маніпулятора та збільшити її до максимального значення

12

Визначити (і вивести на екран) тип маніпулятора та змінити частоту переривань в процесі переміщення

13

В процесі переміщення “мишки” відображати курсор в парних рядках та ховати в непарних

14

Виводити на екран координати курсору маніпулятора відносно верхнього лівого кута екрану при натисканні лівої кнопки, та відносно правого нижнього - при натисканні правої кнопки

15

Відображати в останній горизонтальній лінійці екрану символ “A”, так, щоб вона знаходилась в одній колонці із курсором “миші”

2 Здійснити компіляцію програм.

3 Виконати трасування програми за допомогою Turbo Debugger.

4 Зробити висновки за результатами роботи.