Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции АСУ-ЭВТ 06 / L 7 Орг ЭВМ -циклы-ветвл-прер.doc
Скачиваний:
36
Добавлен:
10.12.2013
Размер:
116.22 Кб
Скачать

7.2.2.. Команды прерываний и возврата из них.

Основные команды прерываний приведены в таблице 7.4.

Таблица 7.4.

Мнемоника

Формат

Комментарий

INT

INT номер_прерывания

Выполнить прерывание

IRET

IRET

Вернуться из прерывания

у

В командеINT <№ прерывания> номер прерываний имеет такой же смысл, как и вектор прерываний в аппаратных прерываниях. Он позволяет найти в ОЗУ полный указатель на обработчик прерываний, т.е. на ячейку, хранящую 2 слова, а именно: адрес сегмента и адрес смещения обработчика прерываний. Всего номеров 257. Хранения полных указателей всех возможных обработчиков прерываний требует ОЗУ размером 256 x 4 байт = 1024 байт, где 4 байта – размер полного указателя.Память, хранящая адреса всех обработчиков прерываний, называется таблицей векторов прерываний.

При исполнении команды INT содержимое регистров CS, IP и F сохраняется в стеке, а в разряды флагов I и F заносится 0, так как система прерываний МП одноуровневая, а МП из кода прерывания формирует адрес смещения в нулевом сегменте. Содержимое этого адреса будет загружено в регистры CS и IP. Схема исполнения команды INT приведена на рисунке 7.3. В результате этого процессор начинает исполнять прерывающую программу. Любая прерывающая программа должна закончиться командой IRET, по которой из стека возвращаются CS и IP и регистр флагов. В результате этого процессор возвращается на прерванную программу.

С помощью команд INT программист легко обращается к любым аппаратным средствам компьютера, вместо того, чтобы писать сложные программы обращения к ПУ.

Вся область прерываний составляет 256 номеров и делится на 2 части:

    1. От 0.до.20h - для BIOS IBM PC.

    2. От 21h…и далее – для MS DOS.

Можно считать номер прерывания – номером программы, а содержимое регистра АН – номером подпрограммы. Операционная система уже содержит программы и подпрограммы обработчиков прерываний. Выбор номера программы и номера подпрограммы осуществляет программист. Номер подпрограммы программы прерывания программист должен предварительно загрузить в регистр AH.

Рис. 7.3. Схема выполнения командыINT

В таблице 7.5. приведены примеры прерываний для управления клавиатурой и экраном.

Таблица 7.5.

Код функции

Выполняемое действие подпрограммы

Входные регистры

Выходные регистры

Номер прерывания

00

Чтение символа с клавиатуры

-

AL - ASCII код

AH - scan код

INT 16h

0A

Чтение строки символов с клавиатуры

DS:DX

-

INT 21 h

00

02

Установка видеорежима

Установка позиции курсора

AL - режим;

DX-координаты позиции

INT 10h

02

Вывод символа на экран

AL - код ASCII символа

INT 21h

09

Вывод строки

DS:DX - адрес строки

INT 21h

Пример использования команды прерывания во фрагменте программы на языке Ассемблер для IBM PC для вывода на экран строки символов приведен ниже. В результате исполнения трех последних команд строка символов, описанная в сегменте данных по правилам языка Ассемблер, будет выведена на экран. К Используемая в данном фрагменте команда int 21h с подпрограммой 09 приведена в табл 7.5.

;сегмент данных

Dat segment

string ‘Введите элементы массива’, ’$’

Dat ends

; сегмент кода

lea dx, string

mov ah, 09h

int 21h

Контрольные вопросы и задания:

  1. .Ответьте, что такое «передача управления», используя имена регистров процессора CS и IP

  2. В чем назначение команды условной передачи управления

  3. Приведите несколько примеров команд, результаты которых не могут использоваться последующей командой JE.

  4. Приведите пример команды условной передачи управления по условию «первый операнд не больше второго» и пример предшествующей команды.

  5. Составьте схему исполнения команды JE 2548, включив в нее и действия с регистром IP.

  6. Может ли быть переход «вперед» в команде JE 2548. А в команде LOOP 357.

  7. Составьте схему исполнения команды LOOP vvvv, включив в нее и регистры СХ и IP.

  8. Какая ситуация в ЭВМ называется прерыванием.

  9. Что понимается под системой прерываний.

  10. Назовите устройства – источники прерываний.

  11. Что общего между аппаратными и программными прерываниями.

  12. Чем отличаются аппаратные прерывания от программных.

  13. Что такое вектор прерываний, код прерываний.

  14. Определите, сколько бит содержит код прерываний.

  15. Составьте схему алгоритма выполнения команды прерываний.

Литература

  1. Цилькер Б.Я. , Орлов С.А. Организация ЭВМ и систем.-Спб.: Питер, 2004.-668 с. Гл. 3, с.144-146, гл. 8, с. 402-403.

  2. Архитектура и программирование реального режима микропроцессоров фирмы Intel: Уч. пособие /Сост. Т. К. Щемелева; Перм. техн. ун-т. Пермь,2001. 96 c. § 7.8.