
- •Лекция 7.Организация циклов и ветвлений в программах. Организация прерываний в эвм.
- •Основные вопросы:. . Команды передачи управления. Команды организации циклов. Организация прерываний в эвм.
- •7.1.Команды передачи управления
- •7.1.1.Команда безусловной передачи управления
- •7.1.2. Команды условной передачи управления
- •Inc [bx]
- •7.1.3.Команды организации циклов
- •7.2.Организация прерываний в эвм
- •7.2.2.. Команды прерываний и возврата из них.
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 части:
От 0.до.20h - для BIOS IBM PC.
От 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
Контрольные вопросы и задания:
.Ответьте, что такое «передача управления», используя имена регистров процессора CS и IP
В чем назначение команды условной передачи управления
Приведите несколько примеров команд, результаты которых не могут использоваться последующей командой JE.
Приведите пример команды условной передачи управления по условию «первый операнд не больше второго» и пример предшествующей команды.
Составьте схему исполнения команды JE 2548, включив в нее и действия с регистром IP.
Может ли быть переход «вперед» в команде JE 2548. А в команде LOOP 357.
Составьте схему исполнения команды LOOP vvvv, включив в нее и регистры СХ и IP.
Какая ситуация в ЭВМ называется прерыванием.
Что понимается под системой прерываний.
Назовите устройства – источники прерываний.
Что общего между аппаратными и программными прерываниями.
Чем отличаются аппаратные прерывания от программных.
Что такое вектор прерываний, код прерываний.
Определите, сколько бит содержит код прерываний.
Составьте схему алгоритма выполнения команды прерываний.
Литература
Цилькер Б.Я. , Орлов С.А. Организация ЭВМ и систем.-Спб.: Питер, 2004.-668 с. Гл. 3, с.144-146, гл. 8, с. 402-403.
Архитектура и программирование реального режима микропроцессоров фирмы Intel: Уч. пособие /Сост. Т. К. Щемелева; Перм. техн. ун-т. Пермь,2001. 96 c. § 7.8.