Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСП.doc
Скачиваний:
3
Добавлен:
27.09.2019
Размер:
162.3 Кб
Скачать

Прерывание

Появилось понятие прерывания вместе с созданием ЭВМ. Тогда стала задача о совместной работе процессора и медленных внешних устройств. Хорошим примеров может служить клавиатура. Когда пользователь нажмет клавишу не известно. Это может случиться в любой момент, вот когда он нажимает клавишу и сообщается процессору что нужно бы обработать это событие и получить клавишу, которая нажата. Отсюда можно сделать вывод, что прерывания рождают внешние устройства. Но в нашем примере было использовано прерывание в программе. Конечно, кроме получения информации от устройства, этим устройствами нужно еще и управлять. Устройства медленные и помимо прочего еще нужно будет дождаться окончание выполнения операции. Это то же реализуется с помощью прерываний, вызываемыми из программы. Итак, прерывания бывают двух типов:

Программные

Аппаратные

Устройств всяких много - клавиатура, монитор, дисковод и так далее. Если не пользоваться прерываниями, то постоянно операционная система должна опрашивать устройства, нажата ли клавиша, хотите ли вывести данные на монитор и так далее. Намного проще оговорить некоторый механизм который и будет обращаться внимание операционной системы и процессора на необходимость проведения некоторых действий. Как все это работает в динамике? Ваша программа что то считает. В этот момент нажимается клавиша. Программа должны быть прервана. И это будет сделано, управление будет передано специальному коду (процедура обработки прерывания) а потом Ваша программа будет выполняться дальше. То же самое когда мы вызываем прерывание для вывода символов на монитор (int 21h 04Ch) то сами генерируем прерывание. Зачем? В этот момент может происходить считывание с дисковода или вывод других символов на экран. А в это время мы вызываем прерывание вывода символов. Так как прерывания могут наступать одновременно, то есть приоритет их обработки. Есть прерывание, которые выполняться в любом случае даже если идет обработка другого прерывания. Процедура обработки прерывания это программа. Вопрос в том только где она храниться. Базовая обработка прерывания храниться в BIOS и в самих микросхемах оборудования. Но использовать их довольно тяжело. Для того, что бы записать файл нужно завести двигатель дисковода, установить головку, дать команду перейти в тот сектор прочитать таблицу файлов, проверить что там нет файла и так далее так далее. Все эти задачи облегчает операционная система, которая предоставляет Вам прерывания более высокого уровня. Используя эти прерывания, Вы можете одним заходом создать файл, например. Различают прерывания по номерам:

21h - прерывание DOS

13h - прерывание BIOS

Вот когда Вы вызываете прерывание (INT) Вы указываете еще и номер (21h) то есть, кто будет выполнять это действие.

Регистры

Регистры это специальные ячейки памяти. Это самое главное. Вся их прелесть в том, что обращение к регистрам производиться значительно быстрее чем к оперативной памяти ПК. Именно по этой причине регистры используются для команд процессора. От туда процессору удобно и быстро получать информацию. Если говорить o ПК с типом процессоров 286.

Каждый регистр имеет имя и свое назначение. Они бывают следующие по типам.

Регистры общего назначения

AX, BX, CX, DX, BP, SI, DI, SP

Сегментные регистры

CS, DS, SS, ES

Счетчик команд

IP

Регистр флагов

Flags

Таблица 1. Типы регистров

Каждое имя регистра несет некоторый смысл.

A

Accumulator

Аккумулятор

B

Base

База

C

Counter

Счетчик

D

Data

Данные

BP

Base pointer

Указатель базы

SI

Source index

Индекс источника

DI

Destination index

Индекс приемника

SP

Stack pointer

Указатель стека

CS

Code segment

Сегмент команд

DS

Data segment

Сегмент данных

SS

Stack segment

Сегмент стека

ES

Extra segment

Дополнительный сегмент

IP

Instruction pointer

Счетчик команд

Таблица 2. Расшифровка названий регистров

Регистры AX, BX, CX и DX позволяют обращаться не к регистру, а к старшему и младшему байту.