Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абель.docx
Скачиваний:
13
Добавлен:
26.11.2018
Размер:
569.84 Кб
Скачать

Глава 8 Экранные операции I: Основные свойства

__________________________________________________________________________

Ц е л ь: Объяснить требования для вывода информации на экран, а также

для ввода данных с клавиатуры.

ВВЕДЕНИЕ

________________________________________________________________

В предыдущих главах мы имели дело с программами, в которых данные

oпределялись в операндах команд (непосредственные данные) или

инициализировались в конкретных полях программы. Число практических

применений таких программ в действительности мало. Большинcтво программ

требуют ввода данных с клавиатуры, диска или модема и обеспечивают вывод

данных в удобном формате на экран, принтер или диск. Данные,

предназначенные для вывода на экран и ввода с клавиатуры, имеют ASCII

формат.

Для выполнения ввода и вывода используется команда INT (прерывание).

Существуют различные требования для указания системе какое действие (ввод

или вывод) и на каком устройстве необходимо выполнить. Данная глава

раскрывает основные требования для вывода информации на экран и ввода

данных с клавиатуры.

Все необходимые экранные и клавиатурные операции можно выполнить

используя команду INT 10H, которая передает управление непосредственно в

BIOS. Для выполнения некоторых более сложных операций существует

прерывание более высокого уровня INT 21H, которое сначала передает

управление в DOS. Например, при вводе с клавиатуры может потребоваться

подсчет введенных символов, проверку на максимальное число символов и

проверку на символ Return. Преpывание DOS INT 21H выполняет многие из этих

дополнительных вычислений и затем автоматически передает управление в

BIOS.

Материал данной главы подходит как для монохромных (черно-белых, BW),

так и для цветных видеомониторов. В гл. 9 и 10 приведен материал для

управления более совершенными экранами и для использования цвета.

КОМАНДА ПРЕРЫВАНИЯ: INT

________________________________________________________________

Команда INT прерывает обработку программы, передает управление в DOS

или BIOS для определенного действия и затем возвращает управление в

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

используется для выполнения операций ввода или вывода. Для выхода из

программы на обработку прерывания и для последующего возврата команда INT

выполняет следующие действия:

- уменьшает указатель стека на 2 и заносит в вершину стека

содержимое флагового регистра;

- очищает флаги TF и IF;

- уменьшает указатель стека на 2 и заносит содержимое регистра

CS в стек;

- уменьшает указатель стека на 2 и заносит в стек значение

командного указателя;

- обеспечивает выполнение необходимых действий;

- восстанавливает из стека значение регистра и возвращает

управление в прерванную программу на команду, следующую после INT.

Этот процесс выполняется полностью автоматически. Необходимо лишь

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

регистров.

В данной главе рассмотрим два типа прерываний: команду BIOS INT 10H и

команду DOS INT 21H для вывода на экран и ввода с клавиатуры. В

последующих примерах в зависимости от требований используются как INT 10H

так и INT 21H.

УСТАНОВКА КУРСОРА

________________________________________________________________

Экран можно представить в виде двумерного пространства с адресуемыми

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

видеомонитор, например, имеет 25 строк (нумеруемых от 0 до 24) и 80

столбцов (нумеруемых от 0 до 79). В следующей таблице приведены некоторые

примеры положений курсора на экране:

________________________________________________________

Дес. формат Шест. формат

______________ ______________

Положение строка столбец строка столбец

________________________________________________________

Верхний левый угол 00 00 00 00

Верхний правый угол 00 79 00 4F

Центр экрана 12 39/40 00 27/28

Нижний левый угол 24 00 18 00

Нижний правый угол 24 79 18 4F

________________________________________________________

Команда INT 10H включает в себя установку курсора в любую позицию и

очистку экрана. Ниже приведен пример установки курсора на 5-ую строку и

12-ый столбец:

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

MOV BH,00 ;Экран 0

MOV DH,05 ;Строка 05

MOV DL,12 ;Столбец 12