Скачиваний:
109
Добавлен:
21.01.2014
Размер:
2.38 Mб
Скачать

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

                  1. Назначение и синтакис операторов отслеживания событий ?

                  1. Назначение и синтакис операторов обработки ошибок и трассировки

Вопросы по процедуре выполнения индивидуального задания.

5. Библиографический список

                  1. Бобровский С. Программирование на языке QBASIC для школьников и студентов. — М.: Десс; Инфорком-Пресс, 1999. - 208 с.

                  1. Зельднер Г.А. Программируем на языке QuickBASIC 4.5. - М: ABF, 1996. - 432 с.

                  1. Введение в программирование на языке Microsoft BASIC: Учебное пособие / Ю.Я. Максимов, С.В. Осипов, А.В. Потемкин, Щ.С. Симоненков. - М.: ”Диалог-МИФИ”,1991. - 176 с.

Министерство образования

Российской Федерации

Тульский государственный университет

Кафедра “Инструментальные и метрологические системы”

Информатика

ЛАБОРАТОРНАЯ РАБОТА 18

Организания прерываний в среде QB

для студентов очного обучения

Тула 2000 г.

1. Цель и содержание работы

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

Полученные знания и навыки необходимы для выполнения других лабораторных работ, а также практической деятельности.

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

                  1. Изучить теоретическую часть.

                  1. Получить задание у преподавателя.

                  1. Выполнить задание.

                  1. Оформить отчет.

                  1. Защитить работу.

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

Работа с системными прерываниями

Многие стандартные функции управления устройствами компьютера (памятью дисководами, монитором, клавиатурой) реализованы по принципу прерываний (interrupt). Часть из них закодирована в постоянной памяти - BIOS, часть - обеспечивается операционной системой. Прерывания используются для переключения процессора на обслуживание того или иного устройства или процесса. Все производители микросхем BIOS и разработчики DOS придерживаются определенных стандартов, т.е. функционально управление устройствами компьютеров одинаково.

Наиболее часто используются следующие прерывания:

  • INT 10h - видеосервис;

  • INT 11h - информация об оборудовании;

  • INT 13h - дисковый ввод/вывод;

  • INT 14h - обслуживание последовательного порта;

  • INT 16h - сервис клавиатуры;

  • INT 17h - управление принтером;

  • INT 1Ah - сервис таймера;

  • INT 21h - сервис DOS;

  • INT 27h - оставляет программу резидентной;

  • INT 33h - сервис мыши.

Получив доступ к этим средствам, вы получаете доступ непосредственно к оборудованию, т.е. пересылаете в регистры процессора нужные параметры, а контроллер прерываний переключает процессор на обслуживание требуемого устройства.

Большинство прерываний имеют свои функции, которые конкретизируют их действия (номер функции необходимо переслать в регистр процессора AH).

Программисту легче вызвать нужное прерывание, чем писать сложный модуль обработки состояния какого - либо оборудования. В справочниках и руководствах обычно подробно описаны функции BIOS и DOS.

Для доступа к системным прерываниям необходимо загрузить библиотеку QB.QLB например: E:>QB45>qb program / L QB.QLB.

QB.QLB - библиотека, которая загружается по умолчанию, поэтому при вызове среды ее имя можно не указывать, ограничившись указанием ключа / L например: E:>QB45>qb program / L.

CALL INTERRUPT

CALL INTERRUPTX

Процедуры прерывания

Вызов процедур прерываний, разрешенных BIOS и DOS.

CALL INTERRUPT (параметры)

CALL INTERRUPTХ (параметры)

CALL INT86OLD (параметры)

CALL INT86XOLD (параметры)

  • Для пересылки параметров в процедуры INTERRUPT и INTERRUPTХ используется пользовательский тип данных RеgType. В нем каждый элемент соответствует регистру процессора. Регистры процессора в которые разрешено пересылать данные следующие:

  • AX (AH, AL) - аккумулятор;

  • BX (BH, BL) - базовый регистр;

  • CX (CH, CL) - счетчик;

  • DX (DH, DL) - регистр данных;

  • BP - указательбазы;

  • SI - индекс источника;

  • DI - индекс приемника;

  • Флаговый регистр;

  • DS - указатель сегмента данных;

  • ES - указатель дополнительного сегмнта.

  • Процедура INTERRUPT не использует значения в регистрах DS и ES, поэтому чаще всего она и применяется. Все переменные этой процедуры должны быть целыми !!!

  • Если вы вызываете процедуру INTERRUPTХ и вам требуется использовать текущие значения в регистрах DS и ES, установите элементы DS и ES переменной типа RеgType равными -1.