Методические указания к лабораторным работам по курсу "Информатика", страница 5

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

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

row - номер ряда

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

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

Вариант 6.

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

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

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

row - номер ряда

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вход:      АН  =  1Н

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

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

Вход:      АН = 7Н

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

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

Вход:      АН = 0АН

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

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

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

Вход:      АН = 2Н

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

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

Вход:      АН = 9Н

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

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

Вход:       АН = 2АН

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

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

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

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

Вход:        АН = 2ВH               

      СХ – год (1980 - 2099)

      DH - месяц (1-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 = 0    - все в порядке

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

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

Вход:     АН = 47Н

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

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

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

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

Вход:      АН = 47Н

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

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

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

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

Вход:       АН = 36Н

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

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

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

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

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

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

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

Обратите внимание на необходимость сохранения - восстанов­ления регистра DS, если он используется для передачи параметров.