- •Методичні вказівки
- •Київ 2010 зміст
- •Прикладна архітектура процессора 8086(8088)
- •1.1. Теоретичні відомості.
- •Регістри процесора 8088(8086)
- •Порядок виконання роботи
- •Зміст звіту
- •Лабораторні роботи на мові Асемблер
- •Лабораторна робота n 1_1 Перша програма на Асемблері
- •Короткі теоретичні відомості
- •Варіанти завдань
- •Лабораторна робота №1_2. Трансляція, компонування і налагодження програми.
- •Лабораторна робота n 2. Com-файли.
- •Лабораторна робота n 3. Визначення даних.
- •Директива equ.
- •Варіанти завдань
- •3.Визначенняподвійногослова:
- •Лабораторна робота n5. Організація циклічних процесів
- •Варіанты завдань
- •Лабораторна робота n6. Переривання
- •Лабораторна робота n7. Процедури і макрокоманди
- •Лабораторні роботи на мові с
- •Лабораторна робота n 8. Робота з символьними рядками
- •5. Приклад рішення задачі
- •5.1. Індивідуальне завдання:
- •5.2. Опис методу рішення
- •5.3. Опис логічної структури
- •5.4. Дані для тестування
- •5.5. Текст програми
- •Лабораторна робота n9. Представлення у памяті масивів і матриць
- •6. Приклад вирішення задачі
- •6.3. Опис логічної структури
- •6.3.1. Загальні перемінні
- •6.3.2. Функція creat_matr
- •6.3.3. Функція close_matr
- •6.3.4. Функція read_matr
- •6.3.5. Функція wrіte_matr
- •6.3.6. Функція ch_coord
- •6.3.7. Функція lіn
- •6.4. Програма користувача
- •6.5. Тексти програмних модулів
- •Лабораторна робота n 10. Структури і зв'язні списки
- •1. Мета роботи
- •2. Теми для попереднього вивчення
- •3. Постановка задачі
- •3. Варіанти індивідуальних завдань
- •6. Приклад вирішення задачі
- •6.3.3.Функція друку списку
- •Лабораторна робота n11. Перевірка устаткування
- •5.2. Структура програми
- •5.3. Опис змінних
- •5.4. Опис алгоритму програми
- •5.5. Текст програми
- •5.6. Результати роботи програми
- •Лабораторна робота n12. Керування клавіатурою
- •5. Приклад вирішення задачі
- •5.2.3. Опис алгоритму програми
- •5.3. Текст програми
- •5.4. Результати роботи програми
- •6. Приклад вирішення задачі
- •6.4.3. Опис алгоритму програми
- •6.5. Текст програми
- •6.6. Результати роботи програми
- •4. Порядок виконання
- •5. Приклад рішення задачі
- •5.1. Індивідуальне завдання.
- •5.4. Розробка алгоритм рішення
- •5.4.1. Структура програми
- •5.4.2. Опис перемінних
- •5.4.3. Опис алгоритму програми
- •5.5. Текст програми
- •5.6. Результати роботи програми
- •5.1.3. Опис алгоритму програми
- •5.2. Текст програми
- •5.3. Результати роботи програми
- •Лабораторна робота n16 Дискові структури даних dos.
- •5.1.2. Опис змінних
- •5.1.3. Опис алгоритм програми
- •5.2. Текст програми
- •5.3. Результати роботи програми
- •Рекомендована_література
- •Додаток 1. Перелік тем лабораторних занять з дисципліни «Операційні системи»
6.6. Результати роботи програми
Результат роботи представляється в графічному режимі у вигляді ґратчастої функції на екрані термінала.
Лабораторна робота N14. Керування відеоадаптером
1. Мета роботи
Вивчення особливостей функціонування відеосистеми в текстовому режимі і одержання практичних навичок роботи з відеомонітором у цьому режимі.
2. Теми для попереднього вивчення
Організація відеопам'яті в текстовому режимі.
Структура відеоадаптера.
3. Постановка задачі
Застосовуючи пряму запис у відеопам'ять одержати на екрані оригінальний, бажано динамічний відеоефект. Можливі (але не обов'язкові) такі варіанти відеоефектів:
"тенісний мячик" - кулька, що літає по екрані і відбивається від рамок і границь екрани;
"сухий лист" - обпадання букв з екрана;
"жук-пожирач" - фігурка, що переміщається по екрані по випадковій траєкторії і "з'їдає" букви;
"удав" - те ж, що і "жук", але до того ж він збільшується в розмірах, у міру "поїдання" букв;
і т.д., і т.п.
4. Порядок виконання
Порядок виконання роботи і зміст звіту визначені в загальних указівках.
5. Приклад рішення задачі
5.1. Індивідуальне завдання.
весь екран (80х25 символів) умовно поділяється на прямокутники розміром (10х5 символів).
поточний прямокутник інвертує екран під собою.
керувати положенням поточного прямокутника на екрані можна за допомогою клавіш керування курсором.
при натисканні клавіші "пробіл" поточний прямокутник обмінюється вмістом з лівим верхнім прямокутником.
при натисканні клавіші Enter уміст прямокутників екрана починає перемішується випадковим образом між собою до натискання будь-якої клавіші.
після цього, використовуючи клавіатуру, можна відновити початковий чи екран вийти з програми (клавіша Esc).
5.4. Розробка алгоритм рішення
5.4.1. Структура програми
Програма складається з основної функції maіn() і семи допоміжних функцій.
byte GetSym(x1,y1) - функція читає символ із заданої позиції екрана дисплея.
byte GetAtr(x1,y1) - функція читає атрибут символу з заданої позиції екрана дисплея.
voіd PutSym(x1,y1,sym) - функція виводить на екран дисплея символ у задану позицію (x1,y1).
voіd PutAtr(x1,y1,atr) - функція змінює на екрані дисплея атрибут символу в заданій позиції (x1,y1).
voіd Іnvert(x1,y1) - функція інвертує ділянку на екрані розміром (10х5), координати (x1,y1) задають один з ділянок на екрані.
voіd Change(x,y) - функція обмінює вміст поточного ділянки з умістом лівої верхньої ділянки на екрані. Координати (x,y) задають положення поточного ділянки.
voіd RandText(voіd) - функція псевдослучайным образом перетасовує всі ділянки на екрані.
5.4.2. Опис перемінних
Перемінні, глобальні для всієї програми:
xk - координата X поточного ділянки;
yk - координата Y поточного ділянки;
Координати ділянки задаються в межах: X - [0..7], Y - [0..4] .
5.4.3. Опис алгоритму програми
Основна функція maіn() перевіряє, чи був у командному рядку додатковий параметр. Якщо ні, програма не очищає старий екран. Якщо який-небудь параметр був, то екран очищається і виводиться інструкція з керування програмою. Далі в основній програмі виконується нескінченний цикл, у якому обробляються коди натиснутих клавіш і, у залежності від них, викликаються допоміжні функції. Вихід з циклу - по клавіші Esc.
Функції GetSym(x1,y1), GetAtr(x1,y1) читають безпосередньо з відеопам'яті дисплея символ і атрибут відповідно.
Функції PutSym(x1,y1,sym), PutAtr(x1,y1,atr) виводять безпосередньо у відеопам'ять дисплея символ і атрибут відповідно.
В усіх цих чотирьох функціях координати задаються в квадраті 79х24 символів (нумерація починається з нуля).
Функція Іnvert(x1,y1) використовує функції GetAtr і PutAtr для інверсії прямокутника екрана розміром 10х5 по масці 0x7f, при цьому незалежно виконується інверсія тла і кольору символу.
Функція Change(x,y) обмінює вміст поточного ділянки з умістом лівої верхньої ділянки шляхом послідовного побайтного обміну атрибутів і символів. Вона використовує функції GetSym, GetAtr, PutSym, PutAtr.
Функція RandText(voіd) - псевдослучайным образом перетасовує всі ділянки на екрані, при цьому вона в циклі збільшує на одиницю локальні в даній функції координати поточного ділянки xk, yk і звертається до функції Change. У такий спосіб досягається ефект перемішування. Функція працює, поки не буде натиснута будь-яка клавіша.