
Лекция 14 (2 часа)
-
Операторы обработки прерываний в программах на Basic Microsoft.
Виды прерывания
Оператор конца процедуры обработки прерываний - RESUME
Система прерывание - это совокупность аппаратных и программных средств, обеспечивающих процесс переключения с одной программы на другую и возврат к продолжению прерванной программы за счет операций процессора, называемых прерыванием. Прерывание - это операция процессора, состоящая в сохранении состояния процессора, предшествовавшего прерыванию, и установлении нового состояния. Это состояние запоминается в регистрах процессора и называется - слово состояние процессора, которое состоит из последовательности битов, значение которых отражают текущее состояние процессора и выполняемой им программы. Прерывание это реакция процессора на некоторое условие, возникающее в процессоре или вне его. Реакция выражается в прекращении выполнения текущей команды для обработки возникшего условия. Прерывание иногда позволяет обработать такое условие специальной программой и вернуться к прерванной программе.
Прерывания бывают трех видов:
- аппаратные (например: нажатие клавиши);
- логическое или процессорное (например: деление на ноль);
- программные (например: команды ввода/вывода).
Каждое прерывание имеет уникальный номер от 0 до 255 и с ним связана определенная программа, призванная обслуживать возникшую ситуацию. На BIOS возложена задача обслуживать прерывания нижнего уровня, т.е. тех, которые требуют непосредственного управления аппаратными компонентами компьютера. Это прерывания с номерами от 0 до 31. Прерывания с номерами от 32 и выше относятся к прерываниям верхнего уровня и обрабатываются модулем обработки прерываний MSDOS.SYS.
BIOS является "программной оболочкой" вокруг аппаратных средств компьютера, предоставляет возможность другим программам, а также и самой операционной системе, обращаться к внешним устройствам компьютера через механизм прерываний.
Присваивает клавише строку символов и может отображать значения клавиш.
KEY key%, символьное выражение
клавиша% Номер функциональной клавиши. Используйте цифры от 1 до 10 для функциональных клавиш от F1 до F10.
Используйте 30 и 31 для функциональных клавиш F11 и F12 на расширенной клавиатуре.
символьное выражение Строка из 15 символов, выводящихся на экран при нажатии функциональной клавиши.
LIST Отображает установки для каждой клавиши.
ON Включает строку отображения функциональных клавиш.
OFF Выключает строку отображения функциональных клавиш.
KEY Включает, выключает или приостанавливает отслеживание событий для клавиш.
При включенном отслеживании событий ON KEY обращается к подпрограмме каждый при нажатии клавиши.
n% Значение, указывающее на функциональную клавишу, клавишу направления или определенную пользователем клавишу.
-
0
Все перечисленные здесь клавиши (KEY(0) ON, KEY(0) OFF и KEY(0) STOP
1-10
Функциональные клавиши F1-F10.
11
Клавиша СТРЕЛКА ВВЕРХ.
12
Клавиша СТРЕЛКА ВЛЕВО.
13
Клавиша СТРЕЛКА ВПРАВО.
14
Клавиша СТРЕЛКА ВНИЗ
15-25
Определенные пользователем клавиши. Более подробно смотрите в “Объявление определенных пользователем клавиш”.
30, 31
Функциональные клавиши F11 и F12.
KEY(n%) ON Включает отслеживание событий для указанной клавиши.
KEY(n%) OFF Выключает отслеживание событий для клавиш.
KEY(n%) STOP Приостанавливает отслеживание событий. Событие обрабатывается при включении KEY ON.
строка Метка или номер первой строки подпрограммы отслеживания событий.
Оператор конца процедуры обработки прерываний - RESUME
Назначение: Обеспечивает переход к продолжению выполнения программы после выполнения процедуры обработки прерываний.
Синтаксис:
RESUME [0]
RESUME NEXT
RESUME [<номер строки> | <метка строки>}
Существует несколько форм оператора RESUME.
Форма оператора Действие
RESUME [0] Переход на оператор, который вызвал прерывание
RESUME NEXT Переход на оператор, следующий за оператором, который вызвал прерывание
RESUME <номер строки> Переход на строку с указанным номером
RESUME <метка строки> Переход на указанную метку.