Информатика: Методические указания к лабораторным работам. Часть 2. Ассемблер, страница 5

void var4(char *str, char * attr, int row, int col);

str - строка символов для вывода

attr - массив атрибутов символов

row - номер ряда

col - номер колонки

Вариант 5.

  Написать функцию,  которая выводит в заданном месте экрана справа налево строку с заданными атрибутами. Прототип функции:

void var5(char *str, int ruw, int col, Int attr);

str - строка для вывода

row - номер ряда

col - номер колонки

attr - атрибуты для вывода

Вариант 6.

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

void var6(char *str, int row. int col, int ten);

str - -строка, куда нужно поместить считанные данные

row - номер ряда

col - номер колонки

len - количество считываемых символов

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

1. Команды работы с прерываниями и их особенности

2. Классификация прерываний

3. Особенности обработки аппаратных прерываний

4. Использование прерываний для обращения к BIOS

Лабораторная работа N 4

ПРОГРАММНЫЕ ПРЕРЫВАНИЯ.

ИНТЕРФЕЙС С ОПЕРАЦИОННОЙ СИСТЕМОЙ

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

Ознакомиться с основными функциями прерывания INT 21 - ин­терфейса с DOS.

2. Краткие теоретические сведения

Для обращения  к операционной системе DOS используются ряд программных прерываний в диапазоне 20h-3Fh.  Наиболее часто ис­пользуются подфункции прерывания INT 21Н.  Они позволяют доста­точно просто организовать работу с различными внешними устройс­твами -  клавиатурой,  видеомонитором,  принтером,  асинхронны» последовательным портом ввода - вывода и др.

Вызов всех функций выполняется аналогично обращениям к BI­OS: в регистр АН помещается номер функции, необходимые парамет­ры -  в  другие  регистры.  После  выполнения функции результат возвращается также в регистрах.  Значения всех регистров, кроме используемых для передачи параметров, сохраняются.

Основные функции прерывания INT 21H,  используемые в лабо­раторной работе:

1. Ввод  символа  с ожиданием и эхо-печатью

Вход:      АН  =  1Н

Выход:    AL * код символа

2. Ввод символа с ожиданием без эхо-печати

Вход:      АН - 7Н

Выход:    AL - код символа

3. Чтение строки с клавиатуры в буфер до CR

Вход:      АН = ОАН

                DS:DX - адрес буфера. Первый байт буфера - его длина

Выход:    DS:DX - адрес буфера. Действительная длина строки во втором байте буфера, строка начинается с третьего байта.

4. Вывод символа

Вход;      АН = 2Н

                DL - код символа

5. Вывод строки символов

Вход:      АН = 9Н

                DS:DX - адрес строки. Признак конца строки - символ «$»

6. Чтение системной даты

Вход:       АН = 2АН

Выход:     СХ - Год (1980 - 2099)

                 DH - месяц (1-12)

                  DL - число (1-31).

7. Установка системной даты

Вход:        АН = 2ВВ               

      СХ – год (1980 - 2099)

      DH - месяц (Г-12)

                  DL - число (1-31)

Выход:      AL = 0 - все в порядке, FFH -        ошибка в задании даты

8. Чтение системного времени

Вход:     АН = 2СН

Выход:    CH - часы (0-23)

                CL - минуты (0-59)

                DH - секунды (0-59) DL - сотые доли секунды (0-99)

9. Установка системного времени

Вход:      АН = 2DH

               СН - часы (0-23)

               CL - минуты (0-59)

               DH - секунды (0-59) DL - сотые доли секунды (0-99)

Выход:   AL = О    - все в порядке

               AL = OFFH - ошибка в задании времени

10. Чтение имени текущего каталога

Вход:     АН = 47Н

               DL = номер диска (1 -"А", 2 - "В"     и т.д.)

               DS:SI - адрес буфера (не менее 64          байт)

Выход:   DS:SI - адресимени каталога (заканчивается О)

11. Чтение имени текущего каталога

Вход:      АН = 47Н

                DL = номер диска (1 -"А", 2 - "В" и т.д.)

                DS:SI - адрес буфера (не менее 64 байт)

Выход:    DS:SI - адресимени каталога (заканчивается О)

12. Информация о свободном пространстве на диске

Вход:       АН = 36Н

      DL = номер диска (1 -"А", 2 - "В" И Т.Д.)

Выход:    AX - число секторов в кластере

     ВХ - число свободных кластеров

     СХ - число байтов в секторе

     DX - общее число кластеров

3. Методические указания

В лабораторной работе требуется написать ассемблерную про­цедуру, вызываемую из СИ-программы и выполняющую действия, свя­занные с обращением к DOS.