АСЕМБЛЕР - Урок за основите на езика за програмиране АСЕМБЛЕР

1.6. Система за прекъсване

Системата за прекъсване на всеки компютър е най-важната му част, която ви позволява бързо да реагирате на събития, които трябва да бъдат обработени незабавно: сигнали от машинни таймери, натискане на клавиши на клавиатура или мишка, повреди в паметта и т.н. Нека да разгледаме компонентите на тази система в общи линии. Сигналите за хардуерно прекъсване, които се появяват в устройства, които са част от компютъра или са свързани към него, не влизат директно в процесора, а през два контролера за прекъсване, единият от които се нарича главен, а вторият се нарича подчинен (фиг. 1.11)

основите

Фиг. 1.11. Хардуерни прекъсвания.

Използват се два контролера за увеличаване на разрешения брой външни устройства. Факт е, че всеки контролер на прекъсване може да обслужва сигнали само от 8 устройства. За да обслужват повече устройства, контролерите могат да се комбинират, за да образуват ветрилообразна структура. В съвременните машини са инсталирани два контролера, като по този начин се увеличава възможният брой входни устройства до 15 (7 за главния и 8 за подчинения контролер). Към IRQ1 входни пинове. IRQ7 и IRQ8. IRQ15 (IRQ е съкращение от Interrupt Request, искане за прекъсване) свързва изходите на устройства, на които се появяват сигнали за прекъсване. Изходът на главния контролер е свързан към входа INT на микропроцесора, а изходът на подчинения контролер е свързан към входа IRQ2 на главния. Основната функция на контролерите е да предават сигнали за искане на прекъсване от външни устройства към единичния вход за прекъсване на микропроцесора. В същото време, освен INT сигнала, контролерите предават на микропроцесора по линии за данни номера на вектора, който се формира в контролера чрез добавяне на базовото число, записано в един от регистрите му, с номера на входния ред, по койтое получена заявка за прекъсване. Номерата на базовите вектори се въвеждат в контролерите автоматично по време на първоначалното зареждане на компютъра. За главния контролер базовият вектор винаги е 8, за подчинения е 70h. По този начин броят на векторите, присвоени на хардуерните прекъсвания, лежи в диапазона от 8h. Fh и 70h. 77ч. Очевидно е, че номерата на векторите на хардуерните прекъсвания са еднозначно свързани с броя на линиите, или нивата на IRQ, а чрез тях - и с конкретни компютърни устройства. На фиг. 1.11 са показани някои от стандартните компютърни устройства, работещи в режим на прекъсване. Процесорът, при получаване на сигнал за прекъсване, изпълнява поредица от стандартни действия, обикновено наричани процедура за прекъсване. Подчертаваме, че тук говорим само за реакцията на самия процесор към сигналите за прекъсване, а не за алгоритмите за обработка на прекъсвания, предоставени от потребителя в програмите за обработка на прекъсвания. Обектите на компютърната система, участващи в процедурата за прекъсване, и тяхното взаимодействие са показани на фиг. 1.12.

урок

Фиг. 1.12. Прекъсване на услугата.