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

          MOV DX, OFFSET new_int  ;DS:DX - адрес обработчика

          MOV АН, 25Н

          MOV AL, N Вектора

          INT 2lH        ;установка нового вектора

          POP DS

          RET

setvect   ENDP

          END

В этом примере переменная sym используется для передачи  в подпрограмму обработки прерывания байта (байтов) из Си-программы. Примеры обращения к данный:

 MOV AL, sym                      ;char sym

если передается массив:

    LEA SI,sym

MOV AL, [SI]                              ;первый байт массива

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

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

Данные, необходимые для подпрограммы обработки прерывания, передаются из Си-программы через глобальные переменные. Исполь­зуйте в ассемблерной программе директиву EXTRN. Обратите внима­ние на правильную установку регистра DS.

Старый вектор прерывания сохранять не нужно. Для временно­го хранения данных (например,  координат  курсора)  используйте стек.

В подпрограмме обработки прерывания  следует  использовать функции BIOS. Необходимая информация приведена в описании лабо­раторной работы № 3. можно также воспользоваться справочной ин­формацией QUICK-С.

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

1. Написать  головную  программу  на Си для вызова функции обработки строк, содержащую:

- прототип ассемблерной функции установки вектора прерыва­ния

- вызов ассемблерной функции для перехвата вектора  преры­вания

- цикл для ввода текста или символов (в зависимости от ва­рианта)

2. Написать ассемблерные  функции  для  перехвата  вектора прерывания и обработки прерываний (по вариантам).

3. Выполнить компиляцию и компоновку программы и произвес­ти ее отладку.

Задания к лабораторной работе.

Вариант 1.

Программа перехватывает прерывание 5 - PrintScreen. В головной программе реализован цикл ввода и вывода строк. При нажатии на клавишу PrintScreen в центре экрана должна выво­диться строка,  введенная в головной программе последней. Подп­рограмма  обработки прерывания должна сохранять текущую позицию курсора на экране.

Вариант 2.

Программа перехватывает прерывание 5 - PrintScreen. В головной  программе  реализован  цикл  ввода  символов с эхо-печатью. При нажатии не клавишу PrintScreen в правом  верх­нем углу экрана должен выводиться символ,  введенный последним. Подпрограмма обработки прерываний должна сохранять текущую  по­зицию курсора на экране.

Вариант 3.

Программа перехватывает прерывание 5 - PrintScreen. В головной программе реализован  цикл  ввода-вывода  строк текста. При  нажатии  на клавишу PrintScreen подпрограмма обра­ботки прерываний должна очищать  экран  с  сохранением  позиции курсора и выдачей звукового сигнала.

Указание. Для очистки экрана использовать функцию установ­ки видеорежима (INT 10H, функция 0Н, AL=3).

Вариант 4.

Программа перехватывает прерывание 1СН - таймер. В головной программе реализован цикл ввода-вывода символов с эхо-печатью.  Подпрограмма  обработки прерывания должна выво­дить в правом верхнем углу экрана последний  введенный  символ. Текущая позиция курсора на экране должна быть сохранена.

Вариант 5.

Программа перехватывает прерывание 1СН - таймер.  В головной программе реализован цикл  ввода-вывода  строк. Подпрограмма обработки  прерывания•должна выводить в центре эк­рана на цветном фоне первый символ последней введенной  строки. Текущее положение курсора на экране нужно сохранить.

Вариант 6.

Программа перехватывает прерывание 1СН - таймер. В головной программе организован цикл ввода-вывода  строк. Подпрограмма обработки прерывания должна заменять первый символ в строке с курсором на знак "$". Старое положение курсора нужно сохранять.

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

ПРОГРАММЫ, РЕЗИДЕНТНЫЕ В ПАМЯТИ (TSR).

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

Ознакомиться с  особенностями  реализации  TSR-программ  в операционной системе MS-DOS.

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

Резидентные в памяти программы (TSR-программы) используют­ся, как правило, для организации обработкиаппаратных или прог­раммных прерываний в фоновом режиме.  Реализациятаких программ имеет ряд особенностей как при установке, так и в процедуре об­работки прерываний.