Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_лаб_ПЗСУ.doc
Скачиваний:
11
Добавлен:
07.02.2016
Размер:
483.84 Кб
Скачать

Лабораторна робота №1

Керування виводом інформації про стан системи управління на систему відображення інформації та збереження її на носіях

Мета роботи: Дослідити організацію і можливість виводу на екран системними засобами.

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

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

До апаратних засобів можна віднести сам відеотермінал (монітор), відеоконтролер, або відеоадаптер, а також програмне управління відеосистемою.

У текстовому режимі зображення звичайне складається з 25 рядків по 80 символів у рядку, хоча мається можливість збільшувати число рядків до 40 за рахунок зменшення висоти відображуваних символів. Кожен символ і фон під ним можуть приймати кожне з 16 кольорів.

Програмні засоби обслуговування екрана містять у собі відеодрайвер BIOS, до якого можна звернутися з прикладної програми за допомогою переривання INT 10h, і яке забезпечує нижній рівень управління (вивід символів, робота з курсором, переключення режимів відеоадаптера і т.д.), а також програми DOS, що активуються за допомогою переривання INT 21h і представляють більш високий рівень сервісу в текстовому режимі.

Вивід на екран у базовій версії DOS вимагає визначення текстового повідомлення в області даних, установки в регістрі AH значення 09 (виклик функції DOS) і вказівки команди DOS INT 21H. У процесі виконання операції кінець повідомлення визначається по обмежнику ($), як це показано в прикладі нижче:

NAMPRMP DB 'Ім'я студента?','$'

...

MOV AH,09 ;Запит виводу на екран

LEA DX,NAMPRMP ;Завантаження адреси повідомлення.

INT 21H ;Виклик DOS

Знак обмежника "$" можна кодувати безпосередньо після символьного рядка (як показано в прикладі), усередині рядка: 'Ім'я студента?$', або в наступному операторі DB '$'. Використовуючи дану операцію, не можна вивести на екран символ долара "$". Крім того, якщо знак долара буде відсутній наприкінці рядка, то на екран будуть виводитися всі наступні символи, поки знак "$" не зустрітися в пам'яті. Команда LEA завантажує адресу області NAMPRMP у регістр DX для передачі в DOS адреси виведеної інформації. Адреса поля NAMPRMP, що завантажується в DX по команді LEA, є відносна, тому для обчислення абсолютної адреси даних DOS складає значення регістрів DS і DX (DS:DX).

Консольні выкна дають наступні можливості виводу текстової інформації на екран:

  • звертання до екрана як до файлу, за допомогою переривання DOS INT 21h з функцією 40h;

  • використання групи функцій DOS з діапазону 1...Ch (переривання INT 21h), що реалізують посимвольний вивід, а також вивід рядків.

Вивід на екран засобами файлової системи (INT 21h, функція 40h) здійснюється точно також, як і запис у файл. Використовуються визначені дескриптори 1 або 2, закріплені за стандартними пристроями виводу і помилки, відповідно (за замовчуванням - екраном). Число виведених символів вказується в регістрі СХ, а адреса рядка, що виводиться – у регістрі DX.

Для виводу на екран використовується функція DOS 40h, що має наступні параметри:

Вхід: AH = 40h

BX = дескриптор

CX = довжина повідомлення

DX = адреса виведеного повідомлення

Вихід: AX = код помилки або кількість реально виведених символів

Другий спосіб виводу на екран текстової інформації реалізується за допомогою трьох функцій переривання INT 21h:

02h – вивід символу;

06h – прямий вивід;

09h – вивід рядка.

Функція 09h широко використовується в системних програмах для виводу на екран інформаційних і діагностичних повідомлень. Перед викликом переривання адреса повідомлення засилається в регістр DX; закінчується повідомлення символом “$”. При натисканні Ctrl/C спрацьовує стандартна процедура обробки цього переривання і вивід завершується.

Функція 02h викликає передачу на екран одного символу, що поміщається в регістр DX. Для виводу рядка функцію варто використовувати в циклі. В іншому вона не відрізняється від функції 09h.

Функції 06h використовується в тих випадках, коли треба виключити стандартну реакцію системи на введення з клавіатури Ctrl/C. В іншому вона діє також як функції 09h і 02h, однак забезпечує не тільки вивід але і введення. У випадку виводу код ASCII символу, що передається записується в регістр DL; при введенні DL=FFh.

Маються засоби виводу на екран, реалізовані драйверами BIOS, програмне звертання до якого здійснюється за допомогою переривання INT 10h. При роботі в текстовому режимі звичайно використовуються наступні функції драйвера:

02h - установити позицію курсору;

03h - одержати позицію курсору;

05h - установити відеосторінку;

06h – ініціанувати або прокрутити нагору вікно;

07h - ініціанувати або прокрутити униз вікно;

08h - прочитати символ і атрибут у позицію курсору;

09h - вивести символ і атрибут у позицію курсору;

0Ah - вивести символ у позицію курсору;

0Eh - вивести символ у режимі телетайпа;

10h - підфункция 03h - переключити біт мерехтіння/яскравості;

13h - вивести рядок у режимі телетайпа.

Більш детальний опис цих функцій наведено у додатку Г.