Главная страница
Навигация по странице:

  • Выполнение работы

  • Лабораторная работа 1. Лабораторная работа 1 Драйвер экрана по дисциплине Эксплуатация и развитие компьютерных сетей и систем


    Скачать 61.5 Kb.
    НазваниеЛабораторная работа 1 Драйвер экрана по дисциплине Эксплуатация и развитие компьютерных сетей и систем
    Дата23.10.2022
    Размер61.5 Kb.
    Формат файлаdoc
    Имя файлаЛабораторная работа 1.doc
    ТипЛабораторная работа
    #749563


    Министерство образования и науки Российской Федерации

    ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

    СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

    Кафедра промышленной электроники (ПрЭ)

    Лабораторная работа № 1 «Драйвер экрана»

    по дисциплине

    Эксплуатация и развитие компьютерных сетей и систем.


    Выполнил:

    Студент ФДО
    Специальность: 210106
    « » 2013г.
    Проверил:


    2013

    Введение
    Цельработы: требуется произвести написание и отладку программ драйвера экрана. В результате отладки главная программа (имитатор прикладной программы) должна выполнить с помощью драйвера экрана вывод строки символов, состоящей из нескольких слов и управляющих символов "Перевод строки" и "Возврат каретки".

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

    • Специализированные символы. Те символы, на которые программа будет реагировать как на некоторую команду.

    • Обычные символы. Те символы, которые программа будет просто выводить на экран.

    В нашем случае, специализированными являются символы перевода строки #10 (из таблицы ASCII) и возврата каретки #13 (из таблицы ASCII).

    Принцип работы программы драйвера заключается в том, что мы формируем поток входных данных, например, как символьный массив данных с произвольным набором символов, среди которых встречаются символы #10 и #13. Программа анализирует каждый символ и в соответствии с этим предпринимает конкретные действия: либо выполняет перевод строки и установку курсора в начало строки, либо просто выводит символ на экран.

    Помимо работы с символами программа – драйвер должна уметь выполнять форматирование текста и его установку в нужную позицию на экран. В нашей программе установим произвольный текст примерно по центру рабочего окна программы и зададим цвет шрифта – зеленый. Затем для наглядности поменяем цвет символов на синий и красный (см. рис. 1-3).

    Листинг 1 – Видеодрайвер.
    Program Video_Driver; {Название программы}

    VAR stroka: string; {Входная строка символов}

    i:byte;

    j:integer;

    Begin

    {Сформируем входную строку символов}

    for j:=1 to 20 do stroka:=stroka+#7;

    stroka :=stroka +#10+#13;

    for j:=1 to 30 do stroka:=stroka+#32;

    stroka :=stroka +#32+#32+#7+#32+#32+' Video Driver '+#7+#10+#13;

    for j:=1 to 32 do stroka:=stroka+#32;

    for j:=1 to 20 do stroka:=stroka+#7;
    ASM

    MOV AH,0H {Установим текстовый видеорежим}

    MOV AL,02H {Видеорежим 80x25 символов}

    INT 10H {Вызываем прерывание BIOS}
    MOV AH,02 {Запрос на установку курсора}

    MOV BH,00 {Зададим номер видеоэкрана}

    MOV dx,0820H {Установка начальных координат}

    INT 10H

    MOV AL,255

    MOV i, AL {Активируем счетчик}

    @WRITE: {Цикл записи символов на экран}

    INC i {Увеличиваем счетчик на 1}

    }

    MOV BL, i {Номер смещения в массиве}

    MOV AL,[bx+offset+stroka+1] {Запомним номер символа выводимого на экран}

    CMP AL,10

    JNE @START {Если символ перевода строки, то перейдем на выполнение @PEREVOD, иначе на @START}
    @PEREVOD: {Перевод на следующую строку}

    MOV AH,02 {Установка курсора}

    MOV BH,00 {На странице номер 0}

    INC DH {Увеличиваем номер строки на 1}

    INT 10H
    CMP i,127 {Берем следующий символ}

    JNE @WRITE {Повторяем запись}
    @START: {Дополнительная проверка символа}

    CMP AL,13 {Если это не символ возврата каретки, то перейдем к выполнению @START2}

    JNE @START2 {Перейдем к выполнению @LINE}
    @LINE: {Установка курсора в начало строки}

    MOV AH,02H {Запрос на установку курсора}

    MOV BH,00H {На странице номер 0}

    MOV dl,00H {Установка курсора в столбец 0}

    INT 10H
    CMP i,127 {Запись следующего символа}

    JNE @WRITE

    @START2: {Если этот символ не специальный}

    MOV AH,02 {Установим курсор}

    MOV BH,00

    INT 10H
    MOV AH,09H {Запросим вывод символа на экран}

    MOV BH,0H {На странице 0}

    MOV BL,0AH {Установим цвет символа}

    MOV cx,01H {Количество повторов вывода символа}

    INT 10H
    INC Dl {Двигаем курсор}

    CMP i,127 {Запись следующего символа}

    JNE @WRITE

    MOV AH,00H {Пауза для отображения надписи}

    INT 16H

    END;
    END.




    Рис. 1 - Цвет символов номер 0x0AH


    Рис. 2 - Цвет символов номер 0x01H



    Рис. 3 - Цвет символов номер 0x0CH

    Заключение

    В ходе выполнения лабораторной работы были изучены принципы реализации драйвера экрана, была разработана программа-драйвер на языке ассемблера, которая способна анализировать входной массив строк и производить такие действия как перевод строки и возврат каретки (перевод на начало строки).


    написать администратору сайта