Тема 5. Система прерываний. Мультипрограммный режим работы. Программирование
Тема 5. Система прерываний. Мультипрограммный режим работы. Программирование устройств 1
План Назначение и обработка прерываний. Понятие о мультипрограммном режиме работы Программирование устройств 2
1. Назначение и обработка прерываний Под прерыванием понимается прекращение выполнения одной программы и переключение процессора на выполнение другой программы. При необходимости выполнение прерванной программы может быть возобновлено. 3
Механизм прерываний используется для организации обмена данными между внешними устройствами и процессором: внешнее устройство (или выполняющаяся программа) посылает процессору запрос на выполнение операции обмена. 4
Физически прерывание организуется с помощью сигнала IRQ (от Iterrupt ReQuest- запрос прерывания), поступающего от одного из устройств компьютера. 5
Классификация прерываний Внешние Прерывания ввода/вывода Аппаратные прерывания Внутренние Программные прерывания Прерывания от исключительной ситуации 6
Процедура, использующая системный вызов Beep proc push ax push dx mov dl,7; символ-звуковой сигнал mov ah,02h; номер функции выв. символа int 21h; системный вызов pop dx pop ax ret Beep endp 7
Типы прерываний 8
Таблица векторов прерываний Для каждого типа прерывания предусмотрена специализированная программа Адреса всех программ обработки прерываний собраны в таблице векторов прерываний Таблица векторов прерываний занимает первый килобайт оперативной памяти 9
Прерывания делятся на маскируемые (обработка может быть отложена или запрещена) немаскируемые (обработка НЕ может быть отложена или запрещена) 10
Обработка прерывания Во время обработки прерывания процессор выполняет следующие действия: завершает выполнение текущей команды выполняемой программы Сбрасывает флажок if в состояние 0, запрещая поступление других прерываний Запоминает в стеке содержимое всех регистров и адрес следующей выполняемой команды Запрашивает тип прерывания Выбирает из таблицы векторов прерываний адрес, соответствующий типу прерывания 11
Выполняет программу прерывания Устанавливает флажок if в состояние 1 Если возможно возобновление прерванной программы, то восстанавливает сохраненные в стеке данные и продолжает ее выполнение 12
Контроллер прерываний Основные функции контроллера прерываний: прием запросов на прерывание от внешних источников Формирование входного сигнала для процессора и передача его на вход INTR Формирование номера прерывания и передача его на шину данных Запрещение прерываний с определенными номерами Организация приоритеной обработки прерываний 13
2. Понятие о мультипрограммном режиме работы Мультипрограммный режим работы означает, что в оперативной памяти компьютера одновременно находится несколько независимых друг от друга и готовых к счёту программ. 14
причины, по которым может понадобиться мультипрограммный режим работы: одновременное выполнение нескольких программ. необходимость параллельной и независимой от центрального процессора работы периферийных устройств. 15
16
17
Требования к аппаратуре компьютера для реализации мультипрограммного режима работы Система прерываний Механизм защиты памяти Аппарат привилегированных команд Таймер 18
Простейшая реализация механизма защиты памяти регистры защиты памяти: Анач и Акон Предположим, что после загрузки программа занимает сплошной участок памяти с адресами от 20000010 до 50000010. Анач:=20000010 и Акон:=50000010 перед каждым обращением в оперативную память по Афиз ЦП проверяет условие Анач Афиз Акон Если условие истинно, то программа обращается в свою область памяти. 19
3. Программирование устройств 20
21
уровни программирования устройств: высокий уровень: программирование с помощью системных вызовов (функций прерывания 21H, 25H, 26H и др.); средний уровень: программирование с помощью функций BIOS (функции прерываний 10H, 13H,15H, 16H и др.); низкий уровень: программирование посредством обращения к аппаратуре через соответствующие порты ввода-вывода или другим способом. 22
Дисплей, графические режимы Высокий уровень- нет средств Средний уровень –функции прерывания 10H Низкий уровень – порты адаптера дисплея 23
Принтер Высокий уровень- функция DOS 05 Средний уровень –прерывание BIOS 17H Низкий уровень – порты ввода-вывода параллельного адаптера 24
Клавиатура Высокий уровень- ввод с помощью стандартных функций DOS. Средний уровень –прерывание BIOS 16H, буфер клавиатуры. Низкий уровень – порты клавиатуры с перехватом прерывания 9H 25
Использование функций DOS Вызов функций DOS: Mov AH, NUM {готовим другие регистры} int 21H 26
фрагмент программы на Ассемблере: mov ah,2 ; функция DOS вывода символа mov dl,'A' ; A - это символ, который нужно вывести на экран int 21h 27
Некоторые функции DOS (прерывание 21h): Функция 2 Вход: DL-код символа Вывод символа на стандартное устройство вывода. Функция 3 Вход: Читает символ в AL из стандартного последовательного порта (COM1). Функция 5 Вход: DL-код символа Посылает символ на стандартное печатающее устройство LPT1:. Функция 4Ch Завершение процесса Вход: AL-код возврата 28
Использование функций BIOS. mov ah,0 ; функция BIOS установки режима mov al,4 ; номер режима для 4-цветной графики с разрешением 320х200 int 10h ; выполнить видеопрерывание BIOS для установки режима 29
Обслуживание видеосистемы (прерывание 10h): Функция 0 Установка режима дисплея Параметры: (AH)=0, (AL)- режим дисплея, например 0- текстовый 40*25, 16 оттенков; 18 –графический 640*480, 16 оттенков Функция 3 Установка позиции курсора. Параметры: (AH)=2, (BH)- номер страницы дисплея, (DH)- номер строки, (DL)- номер столбца. 30
Определение набора подключенного оборудования (прерывание 11H) Прерывание возвращает в регистре AX информацию об оборудовании компьютера: Биты 15-14 –число подключенных устройств печати (0-3); бит 13- установлен внутренний модем; бит 12 – установлен адаптер игр; биты 11-9 –число адаптеров или портов данных асинхронной связи; бит 8 – не используется; 31
Непосредственное управление устройствами Пример1. Составить программу, осуществляющую проверку батарейки. Энергонезависимая CMOS-микросхема, включает: часы реального времени; информацию о конфигурации компьютера; пароль (в некоторых случаях). 32
Ячейка CMOS – памяти с адресом 0Dh содержит информацию об исправности батареи, питающей микросхему. Если 7-й бит этой ячейки равен 1, то батарея исправна, если этот бит сброшен, то напряжение батарейки упало ниже допустимого предела. Объем CMOS – памяти составляет 64 байт Доступ к байтам – через порты 70h: адресный регистр, который содержит номер ячейки CMOS – памяти 71h: регистр данных, содержащий данные либо прочитанные из ячейки, либо предназначенные для записи в ячейку. 33
code segment assume cs:code begin: mov al,0dh out 70h,al in al,71h test al,80h jnz ok mov ah,02h mov dl,'-' int 21h jmp exit ok: mov ah,02h mov dl,'+' int 21h exit: mov ah,4ch int 21h code ends end begin 34
Пример2. Составить программу извлекающую звук из динамика. Микросхема таймера может по прошествию определенного количества импульсов (это программируется) выдавать на выход сигнал. Если эти сигналы направить на вход динамика, то будет произведен звук. Высота его будет зависеть от поступления сигналов на вход динамика. 35
Микросхема таймера имеет три канала: Канал 0 отвечает за ход системных часов. Канал 1 отвечает за регенерацию памяти. Канал 2 обычно используется для работы с динамиком, хотя его можно использовать для других целей. 36
Адрес порта канала 2– 42h. Это счетчик. При его обнулении выдается сигнал на динамик. Связь канала 2 с динамиком устанавливается через порт 61h. Биты 1 и 0 этого порта должны быть установлены в 1 Программирование каналов таймера осуществляется с использованием порта 43h. Значения битов этого порта представлены в таблице. 37
38
code segment org 100h assume cs:code begin: ;установка режима записи mov AL,10110110b out 43h,al ; разрешить связь с таймером in al,61h or al,3 out 61h,al ;установить частоту звука mov ax,1200 ;засылка в счетчик out 42h,al mov al,ah out 42h,al 39
;задержка mov cx,0ffffh loo: loop loo ;отключить канал от динамика in al,61h and al,11111100b out 61h,al ;завершить программу mov AH,4ch int 21h code ends end begin 40
ak_modul2_tema5_11-12.ppt
- Количество слайдов: 40