Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение»


Скачать 0.68 Mb.
Название Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение»
страница 2/6
Тип Задача
rykovodstvo.ru > Руководство эксплуатация > Задача
1   2   3   4   5   6

УПРАВЛЕНИЕ ВЫВОДОМ ТЕКСТОВОЙ ИНФОРМАЦИИ НА ЭКРАН


1. Цель работы

Целью настоящей работы является изучение возможностей базовой системы ввода-вывода при выводе текстовой информации на экран монитора.

2. Теоретическая часть

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

К аппаратным средствам можно отнести сам видеомонитор – цветную электронно-лучевую трубку со схемами питания и управления, а также видеоконтроллер или видеоадаптер – электронную плату, обеспечивающую вывод на экран, а также программное управление видеосистемой.

В текстовом режиме изображение обычно состоит из 25 строк по 80 символов в строке, хотя имеется возможность увеличивать число строк до 40 за счет уменьшения высоты отображаемых символов.

Система выделяет участок памяти для Области видеоадаптера или буфера. В текстовом режиме область видеоадаптера занимает 4 Кбайт, 2 Кбайта из которых предназначены для хранения символов, и еще 2 Кбайта – для атрибутов каждого символа, например, инвертирования, мигания, повышенной яркости или подчеркивания. Область видеоадаптера разбита на «страницы» экрана, пронумерованные от 0 до 7. Поскольку таблицы, описывающие форму символов, загружаются в память программно, имеется возможность работать с символами любой конфигурации. Обычно используется стандартная кодовая таблица символов, содержащая знаки английского и русского алфавитов, знаки препинания, специальные машинные знаки, символы псевдографики и некоторые математические символы.

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

Для установки графического режима или возврата в текстовой режим используется прерывание BIOS INT 10h, как это показано в двух следующих примерах:

MOV AH,00 ;Режим MOV AH,00 ;Режим

MOV AL,03 ;Цвет+текст MOV AL,04 ;Графика среднего

INT 10h INT 10h ; разрешения

2.1. Текстовой (алфавитно-цифровой) режим

Текстовой режим предназначен для обычных вычислений с выводом букв и цифр на экран. Этот режим одинаков для черно-белых и цветных мониторов, за исключением того, что цветные мониторы не поддерживают атрибут подчеркивания. Текстовой режим обеспечивает работу с полным набором ASCII кодов (256 символов) для всех мониторов. Каждый символ на экране может отображаться в одном из 16 цветов на одном из восьми цветов фона.

Бордюр экрана может иметь также один из 16 цветов.

Тремя основными цветами являются красный, зеленый и синий. Их можно комбинировать друг с другом для получения восьми цветов, включая черный и белый. Используя два уровня яркости для каждого цвета, получим всего 16 цветов:

I R G B I R G B

Черный 0 0 0 0 Серый 1 0 0 0

Синий 0 0 0 1 Ярко-синий 1 0 0 1

Зеленый 0 0 1 0 Ярко-зеленый 1 0 1 0

Голубой 0 0 1 1 Ярко-голубой 1 0 1 1

Красный 0 1 0 0 Ярко-красный 1 1 0 0

Сиреневый 0 1 0 1 Ярко-сиреневый 1 1 0 1

Коричневый 0 1 1 0 Желтый 1 1 1 0

Белый 0 1 1 1 Ярко-белый 1 1 1 1

Таким образом, любые символы могут быть отображены на экране в одном из 16 цветов. Фон любого символа может иметь один из первых восьми цветов. Если фон и текст имеют один и тот же цвет, то текст получается невидимым. Используя байт-атрибут, можно получить также мигающие символы. В приведенной ниже таблице атрибут BL означает мигание, RGB – соответственно красный, зеленый и синий цвета, I - выделение яркостью:

фон текст

Атрибут: BL R G B I R G B

Номера битов: 7 6 5 4 3 2 1 0

Мигание и выделение яркостью относятся к тексту. Ниже приведены некоторые типичные значения атрибутов:

Текст по фону Бит: 7 6 5 4 3 2 1 0

BL R G B I R G B Шест.

Черный по черному 0 0 0 0 0 0 0 0 00

Синий по черному 0 0 0 0 0 0 0 1 01

Красный по синему 0 0 0 1 0 1 0 0 14

Голубой по зеленому 0 0 1 0 0 0 1 1 23

Светло-сиреневый по белому 0 1 1 1 1 1 0 1 7D

Серый по зеленому, мигание 1 0 1 0 1 0 0 0 AB

Байт-атрибут используется аналогично показанному для чернобелого монитора. Тип монитора можно определить из программы с помощью команды INT 11h. Для черно-белого монитора код 07 устанавливает нормальный атрибут. Для цветных мониторов можно использовать любую из цветовых комбинаций. Цвет на экране, сохраняется до тех пор, пока другая команда не изменит его. Для установки цвета можно использовать в команде INT 10h функции АН = 06, АН = 07 и АН = 09. Например, для вывода пяти мигающих звездочек светло-зеленым цветом на сиреневом фоне возможна следующая программа:

MOV AH,09 ;Функция вывода на экран

MOV AL,'*' ;Выводимый символ

MOV ВН,00 ;Страница 0

MOV BL,0DAh ;Атрибут цвета

MOV СХ,05 ;Число повторений

INT 10h ;вызвать BIOS

2.2. Вывод на экран средствами BIOS

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

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

03h - прочитать позицию курсора;

05h - установить видеостраницу;

06h - прокрутить вверх экран;

07h - прокрутить вниз экран;

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

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

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

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

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

13h - вывести строку в режиме телетайпа.
2.2.1. Установка позиции курсора

AH = 02. Эта функция устанавливает курсор в любую позицию на экране в соответствии с координатами строки и столбца. Номер страницы обычно равен 0, но может иметь значение от 0 до 3 при 80 столбцах на экране:

MOV AH,02 ; Установить положение курсора

MOV BH,00 ; Страница 0

MOV DH, строка ; Номер строки

MOV DL, столбец ; Номер столбца

INT 10h ; Вызвать BIOS

2.2.2. Чтение текущей позиции курсора

AH = 03. Прикладная программа может определить положение курсора на экране (строку и столбец) следующим образом:

MOV AH,03 ; Определить положение курсора

MOV BH,00 ; Страница 0

INT 10h ; Вызвать BIOS

После возврата из прерывания регистр DH будет содержать номер стоки, а регистр DL - номер столбца.

2.2.3. Выбор активной страницы

AH = 05. В текстовом режиме с форматом экрана 80х25 устанавливается до 4 страниц (от 0 до 3), а для формата 40х25 – до 8 страниц (от 0 до 7):

MOV AH,05h ; Установить активную страницу

MOV AL,страница ; Номер страницы

INT 10h ; Вызвать BIOS

2.3.4. Прокрутка экрана вверх

AH = 06. С помощью этой функции в заданном месте экрана создаются цветные прямоугольные окна заданного размера. Если в созданные ранее окна выведен какой-либо текст, то с помощью этой функции его можно прокручивать вверх. При этом верхние строки уходят с экрана, а чистые строки вводятся снизу. Для прокрутки любого количества строк необходимо установить соответствующее значение в регистре AL. Регистр BH содержит атрибут для символов.

Значения в регистрах CX и DX определяют координаты левого верхнего и правого нижнего углов сдвигаемого окна соответственно.

Следующие команды выполняют прокрутку всего экрана на одну строку:

MOV AH,06h ; Прокрутить экран вверх

MOV AL,01 ; На одну строку

MOV BH,07 ; Атрибут нормальный: черно-белый

MOV CH,00 ; Номер строки левого верхнего угла

MOV CL,00 ; Номер столбца левого верхнего угла

MOV DH,18h ; Номер строки нижнего правого угла

MOV DL,4Fh ; Номер столбца нижнего правого угла

INT 10h ; Вызов BIOS

2.2.5. Прокрутка экрана вниз

AH = 07. Для текстового режима прокрутка экрана вниз означает удаление нижних строк и вставку чистых строк сверху. Регистр AH должен содержать 07, значения остальных регистров аналогичны функции 06 для прокрутки вверх.

2.2.6. Чтение символа и атрибута в текущей позиции курсора

Для чтения символа и байта-атрибута из видеопамяти используются следующие команды:

MOV AH,08 ; Запрос на чтение символа и атрибута

MOV BH,00 ; Страница 0

INT 10h ; Вызвать BIOS

Данная функция возвращает в регистре AL значение символа, а в регистре AH – его атрибут.

2.2.7. Вывод символа и атрибута в текущую позицию курсора

AH = 09h. Для вывода на экран символов с их атрибутами можно воспользоваться следующими командами:

MOV AH,09h ; Функция вывода

MOV AL,символ ; Выводимый символ

MOV BH,страница ; Номер страницы

MOV BL,атрибут ; Атрибут

MOV CX,повторение ; Число повторений

INT 10h ; Вызвать BIOS

В регистр AL должен быть помещен выводимый символ. Значение в регистре CX определяет число повторений символа на экране. Вывод на экран последовательности различных символов требует организации цикла. Кроме того, при выводе каждого символа необходимо дополнительно передвигать курсор в следующий столбец.

2.2.8. Вывод символа в текущую позицию курсора

AH = 0Ah. Эта функция аналогична функции 09, с той лишь разницей, что функция 0A не устанавливает атрибут.

MOV AH,0Ah ; Функция вывода

MOV AL,символ ; Выводимый символ

MOV BH,страница ; Номер страницы

MOV CX,повторение ; Число повторений

INT 10h ; Вызвать BIOS

2.2.9. Вывод в режиме телетайпа

AH = 0E. Для выполнения этой функции необходимо установить в регистре AH шестнадцатиричное значение 0E, в регистр AL поместить выводимый символ и номер страницы – в регистр BH. Данная функция автоматически передвигает курсор, переводит символы на следующую строку, выполняет прокрутку экрана и сохраняет текущие атрибуты.

2.2.10. Выделение мерцанием и яркостью

AH = 10h. Подфункция 03h этой функции, в отличии от описанных выше функций вывода символов на экран, воздействует сразу на весь экран, влияя на отображение тех символов, у которых установлен старший бит атрибута фона. Функция позволяет либо приписать этот бит яркости фона, давая тем самым возможность выводить на экран 16 цветов фона, либо назначить его атрибуту мерцания символа. В последнем случае цвет фона может принимать только 8 значений.

MOV AH,10h ; Функция

MOV AL,03h ; Подфункция мерцание-яркость

MOV BL,0 ; 0 - яркость, 1 - мерцание

INT 10h ; Вызов BIOS

2.2.11. Вывод символьной строки

AH = 13h. Данная функция позволяет выводить на экран символьные строки с установкой атрибутов и перемещением курсора:

MOV AH,13h ; Функция вывода

MOV AL,сервис ; 0, 1, 2 или 3

MOV BH,страница ;

LEA BP,адрес ; Адрес строки в ES:BP

MOV CX,длина ; Длина строки

MOV DX,экран ; Координаты на экране

INT 10h ; Вызов BIOS

Значения в регистре AL указывают:

0 - использовать атрибут и не перемещать курсор

1 - использовать атрибут и переместить курсор

2 - вывести символ, затем атрибут и не перемещать курсор

3 - вывести символ, затем атрибут и переместить курсор

2.2.12. Вывод символьной строки средствами DOS

Вывод текста на экран средствами DOS требует определения текстового сообщения в области данных, установки в регистре АН значения 09 (вызов функции DOS) и указания команды DOS INT 21Н. В процессе выполнения операции конец сообщения определяется по ограничителю ($), как показано ниже:

NAMSTUD DB ’Имя студента’,’$’

.

.

MOV АН,09 ;3апрос вывода на экран

LEA DX,NAMSTUD ;3агрузка адреса сообщения

INT 21H ;Вызов DOS

Знак ограничителя '$' можно кодировать непосредственно после символьной строки, как показано в примере, внутри строки 'Имя покупателя?$' или в следующем операторе DB '$'. Используя данную операцию, нельзя вывести на экран символ доллара "$", Кроме того, если знак доллара будет отсутствовать в конце строки, то на экран будут выводиться все последующие символы, пока знак "$" не встретится в памяти.

Команда LEA загружает адрес области NAMSTUD в регистр DX для передачи в DOS адреса выводимой информации. Адрес поля NAMSTUD, загружаемый в DX по команде LEA, является относительным, поэтому для вычисления абсолютного адреса данных DOS складывает значения регистров DS и DX (DS:DX).

2.2.13. Вывод символов таблицы ASCII

Большая часть из 256 символов ASCII имеют символьное представление и могут быть выведены на экран. Некоторые значения, например, 00H и FFH, не соответствуют никаким выводимым символам и представляются на экране как пробел, хотя пробел имеет в ASCII особый код – 20Н. Ниже приведена программа, которая выводит на экран все символы ASCII-таблицы.
TITLE A08DISAS (СОМ) Вывод набора символов ASCII

.MODEL SMALL

.CODE

ORG 100H

BEGIN: JMP SHORT A10MAIN

ASCHAR DB 00, '$'

; Главная процедура:

.286

A10MAIN PROC NEAR

CALL B10SCREEN ;Очистка экрана

CALL C10CURSOR ;Установка курсора

CALL D10DISPLY ;Вывод символов

MOV AX,4C00H ;Завершение работы

INT 21H

A10MAIN ENDP

; Очистка экрана и установка атрибутов:

BIOSCREEN PROC NEAR

PUSH A ;Сохранение значений регистров

MOV AX,0600H ;Прокрутка целого экрана

MOV BH,07 ;Атрибуты: белый шрифт на черном фоне

MOV CX,0000 ;Верхний левый угол

MOV DX,184FH ;Нижний правый угол

INT 10Н ;Вызов обработчика прерывания

POP A ;Восстановление значений регистров

RET ;Возврат к точке вызова

BIOSCREEN ENDP

; Установка курсора в ячейку 08,00:

C10CURSOR PROC NEAR

PUSHA ;Сохранение значений регистров

MOV АН,02Н ;Запрос на установку курсора

MOV ВН,00 ;Страница 0

MOV DX,0800H ;Строка 8, столбец 0

INT 10Н ;Вызов обработчика прерывания

POPA ;Восстановление значений регистров

RET ;Возврат к точке вызова

C10CURSOR ENDP

; Вывод символов ASCII 00Н - FFH, кроме символов от 08Н до 0DH:

D10DISPLY PROC

PUSHA ;Сохранение значений регистров

MOV СХ,256 ;Подготовить 256 повторений

LEA DX,ASCHAR ;Указать адрес ASCHAR

D20: CMP ASCHAR,08Н ;Код символа меньше 08Н?

JB D30 ;Да, вывести

CMP ASCHAR, 0DH ;Код символа меньше или равен 0DH?

JBE D40 ;Да, пропустить

D30: MOV АН,09Н ;Вывод ASCII-символа

INT 21Н

D40: INC ASCHAR ;Перейти к следующему символу

LOOP D20 ;Уменьшить значение в СХ,

;повторить, если не ноль

POPA ;Восстановление значений регистров

RET ;Возврат к точке вызова

D10DISPLY ENDP

END BEGIN

3. Порядок выполнения работы

3.1. С помощью отладчика DEBUG создать и выполнить ассемблерную программу, которая устанавливает сиреневый фон всего экрана и задает в центре экрана красное окно меньшего размера.

3.2. Доработайте программу по пункту 3.1, чтобы вывести в центр окна свою фамилию и инициалы.

3.3. Оттранслируйте, скомпонуйте и выполните программу по пункту 3.2.

3.4. Оттранслировать программу, приведенную в разделе 2.2.13, скомпоновать ее и преобразовать в файл типа .СОМ для выполнения.

4. Требования к отчету

Отчет по лабораторной работе должен содержать:

а) титульный лист;

б) условие задания;

в) текст программ на языке Ассемблера;

г) ответы на контрольные вопросы.

5. Контрольные вопросы

1. Сколько цветов можно обеспечить для фона и для текста на стандартном цветном графическом адаптере (CGA) в текстовом режиме?

2. Напишите байты-атрибуты в двоичном формате для: а) ярко-голубого на сиреневом; б) желтого на коричневом; в) серого на красном с миганием.

3. Напишите команды для вывода пяти символов карточной масти "бубны" в текстовом режиме ярко-зеленым цветом на сиреневом фоне.

4. Определите данные и напишите команды, необходимые для вывода на экран функцией 9Н прерывания INT 21H сообщения “What is the current date (mm/dd/yy)?. После вывода на экран сообщения должен подаваться звуковой сигнал.

ЛАБОРАТОРНАЯ РАБОТА № 3
1   2   3   4   5   6

Похожие:

Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Лекция 1
Молчанов А. Ю. Системное программное обеспечение. Лабораторный практикум: – спб.: Питер, 2005. – 284 с
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Введение в системное программное обеспечение. Вопросы: Классификация программного обеспечения
Выделим еще один класс (скорее группу) программ специальное программное обеспечение информационных и управляющих систем
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Программа дисциплины «Системное программное обеспечение» для специальности...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов специальности 230101. 65 «Вычислительные...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon В. К. Никишев «Лабораторный практикум по современным языкам программирования Visual Studio »
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Инструментарий веб-разработчика: Apache, php, Mysql, phpMyAdmin Лабораторный...
Инструментарий веб-разработчика: Apache, php, Mysql, phpMyAdmin: Лабораторный практикум по дисциплине «Сети ЭВМ и телекоммуникации»...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Эксплуатационные материалы лабораторный практикум
Эксплуатационные материалы: лабораторный практикум / А. Д. Синегибская. – Братск: БрГУ, 2011. – 65 с
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Среднетехнический факультет
Лабораторный практикум составлен для проведения лабораторных работ по дисциплине «Технохимический контроль производства»
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Лабораторный практикум по дисциплине
Лабораторные работы должны выполняться в той последовательности, в которой они приводятся в данной разработке
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Рабочая программа по дисциплине б 3 «Программное обеспечение инженерных и научных исследований»
Целью освоения дисциплины «Программное обеспечение инженерных и научных исследований» является формирование компетенций и навыков...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Методические указания по дисциплине “Базы данных и субд”
Методические указания предназначены для студентов специальностей 230105 «Программное обеспечение вычислительной техники и автоматизированных...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Методические указания по дисциплине “Системы управления базами данных”
Методические указания предназначены для студентов специальностей 230105 «Программное обеспечение вычислительной техники и автоматизированных...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Рабочая программа по дисциплине «Системное и прикладное программное...
Рабочая пpогpамма составлена на основе на основании на основании решения кафедры «Вычислительная техника» Ульяновского государственного...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Программа дисциплины разработана на основе государственного общеобязательного...
Госо рк 04. 019-2008 для специальности 050704 – “Вычислительная техника и программное обеспечение” и типовой программы утвержденной...
Задачах программирования лабораторный практикум по дисциплине «Системное программное обеспечение» icon Кафедра товароведения и товарной экспертизы лабораторный практикум...
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск