рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Команды прерываний.

Команды прерываний. - Лекция, раздел Программирование, Системное программирование Средства Прерывания Работы Процессора Внешними Устройствами Освобождают Его О...

Средства прерывания работы процессора внешними устройствами освобождают его от периодической проверки необходимости обслуживания устройств (циклического опроса). Микропроцессор имеет два входа, по которым внешние устройства могут привлечь его внимание: вход NMI немаскируемого прерывания и вход INTR маскируемого прерывания.

Когда внешнее устройство формирует сигнал на входе NMI, процессор прекращает свои действия (но не в середине команды) и реагирует на прерывание. По входу NMI должны появляться только прерывания из-за катастрофических событий (например, отказ сети, ошибка памяти).

Если катастрофических событий нет, внешнее устройство может прервать процессор по входу INTR. Процессор может игнорировать этот сигнал. Это зависит от состояния флага IF: если IF = 0 (процессор не реагирует на прерывания), если IF = 1 - реагирует.

Кроме сигнала на входе INTR внешнее устройство должно сообщить процессору причину прерывания. По запросу процессора внешнее устройство сообщает число из диапазона 0..255, соответствующее причине прерывание, которое называется номером прерывания. Для каждого номера прерывания существует своя программа, которую процессор должен выполнить до возобновления прерванной задачи. Адреса этих программ находятся в 256-элементной таблице векторов прерываний. Каждый её элемент состоит из 4-х байт и содержит полный адрес процедуры обработки соответствующего прерывания (вектор прерывания).

При поступлении сигнала INTR (IF = 1) процессор завершает текущую команду и готовится выполнить процедуру прерывания. Прежде всего он сохраняет в стеке текущее состояние регистра флагов и регистров CS и IP. Затем процессор получает от внешнего устройства номер прерывания и помещает в IP и CS вектор прерывания по соответствующему номеру. Когда приходит прерывание по входу NMI (независимо от флага IF), процессор производит аналогичные действия, за исключением получения номера прерывания, так как причина прерывания по входу NMI всегда одна. Для процедуры прерывания NMI отведён элемент с номером 2 в таблице прерываний.

Выше речь шла о прерываниях, формируемых внешними устройствами, так называемых внешних прерываниях. Но процессор сам генерирует внутренние прерывания, если при выполнении некоторых команд происходит что-то неожиданное. Это так называемые особые случаи, которые свидетельствуют о серьёзной ошибке. Первый 32 элемента в таблице прерываний зарезервированы для внутренних прерываний и прерывания NMI. Процессор 8086 и все последующие в реальном режиме работы генерирует только первые 5 номеров прерываний. Процедура прерывания заканчивается выполнением команды IRET (возврат из прерывания), которая восстанавливает из стека содержимое IP, CS и флагов.

Некоторые процедуры прерываний удобно вызывать и тогда, когда прерываний нет (например функции DOS или BIOS). Поэтому было бы хорошо иметь команду, которая делала бы то, что делает процессор при распознавании прерываний, за исключением одного - номер прерывания содержится в команде, а не выдаётся внешним устройством. Такой командой и является команда INT n, где n - целое число от 0 до 255. Перечень команд прерываний приведен в таблице 2.17.

Таблица 2.17. Перечень команд прерываний.

Мнемоника Описание
INT n Прерывание типа n (длина 2 байта)
INT Прерывание типа 3 (один байт) применяется в отладчиках для реализации останова)
INTO (IF = 1, OF = 1) Прерывание по переполнению (если OF=1) генерирует прерывание №4
IRET Возврат из прерывания
HLT Останов. Прекращает все действия процессора, пока не будет произведен аппаратный сброс или не придет внешнее прерывание (NMI всегда выводит из состояния прерывания, остальные- только если IF=1)

При установке точки останова в отладчике, требуется поместить в точку останова какую-либо команду, которая передала бы управление отладчику. Для этой цели подошла команда INT, которая сохраняет регистры CS и IP. Так как тип прерывания для этой цели не надо передавать, то используют однобайтную форму команды. Отладчик использует команду INT для генерирования прерывания типа 3 при отладке программ, следовательно в наших программах не следует использовать это прерывание.

Прерывания компьютеров семейства PC могут быть разделены как правило на 3 группы: внутренние прерывания микропроцессора, внешние (аппаратные) прерывания, программые прерывания.

2.5.7.Новые команды микропроцессора 80486

В системе команд микропроцессора 80486 появились новые команды BSWAP, XADD, CMPXCHG.

1. BSWAP reg 32- обмен байт в операнде.

(0¸7) разряды « (24¸31) разрядами,

(8¸15) разряды « (16¸23) разрядами.

Используется для преобразования форматов данных с различной адресацией: с младшей стороны и со старшей стороны.

2. XADD mem 8/ 16/ 32(приемник), reg 8/ 16/ 32(источник)

источник= приемнику,

приемник= приемник + источник

3. CMPXCHG mem 8/ 16/ 32 (приемник), reg AL/ AX/ EAX ( ист.)

Если приемник= АХ, то приемник= источнику, иначе АХ=приемнику и ZF=0. Используется для проверки и модификации семафоров.


 

– Конец работы –

Эта тема принадлежит разделу:

Системное программирование

Системное программирование курс лекций для студентов заочного факультета.. самара.. удк..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Команды прерываний.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Указатели
Указатели применяются для обращения к некоторым объектам в памяти, например адресам процедур или адресам меток. Близкий (NEAR) внутрисегментный указатель - это 16-битное или 32-битное смещение (в з

Адресация памяти
Микропроцессор делит адресное пространство на произвольное количество сегментов, каждый из которых содержит не более 64 Кб. Адрес первого байта сегмента всегда кратен 16 байтам и называется адресом

Команды PUSH и POP .
PUSH - передает слово из источника в стек, а команда POP осуществляет противоположное действие: передает слово из стека в приемник. Регистр SP содержит смещение последнего включенного в стек слова

Адресные команды (пересылки адреса)
В микропроцессоре существуют три основные команды пересылки адреса: LEA, LDS, LES. LEA - загрузить смещение в регистр. Форматы команды: LEA

Флажковые команды (команды пересылки флагов).
Команды этого класса обеспечивают доступ к флагам процессора. Команды LAHF (загрузить флаги в AH) и SAHF (запомнить AH во флагах). LAHF передает 5 флагов SF, ZF, AF, PF и CF в определенные

Команды вычитания.
Команды вычитания SUB, SBB, DEC аналогичны командам ADD, ADC, INC, только производят операцию вычитания, а не сложения. Команда CMP аналогична команде SUB, но результат не запоминается в п

Команды умножения и деления.
Умножение двух однобайтовых чисел может дать произведение длиной в слово. Аналогично умножение двух слов может дать результат длиной в двойное слово, а умножение двух двойных слов может дать резуль

Команды расширения знака.
CBW преобразует байт в регистре AL в слово в регистре АХ путем расширения знакового бита AL во все биты регистра AH. Команда CWD преобразует слово в регистре АХ в двойное слово , расположенное в па

Команды циклических сдвигов.
Команды циклических сдвигов позволяют переставить биты в числе. ROL - циклический сдвиг влево и ROR - циклический сдвиг вправо, обеспечивают циклический сдвиг. При этом выдвигающийся бит подаётся в

Команды двойного сдвига
Команды SHLD, SHRD введены в систему команд микропроцессора 80386. Предназначены для сдвигов двух 16-битных или двух 32-битных операндов. Форматы команд: SHLD, SHRD reg/ mem 16, reg, imn

Команды SetCondition
SETCC СС - код условия совпадает с кодами условий в командах JCC условного перехода Формат команд: SETCC reg/ mem 8- если условияСС уд

Команды пересылки цепочки.
Формат общей команды: MOVS цепочка-приёмник, цепочка-источник Дополнительные команды: MOVSB MOVSW MOVSD В команде MOVS операнды нужны только для того, ч

Команды сканирования цепочек.
Команды сканирования цепочек позволяют осуществить поиск заданного значения в цепочке, находящейся в дополнительном сегменте. Смещение адреса первого элемента цепочки должно быть помещено в регистр

Команды загрузки.
Команда LODS пересылает операнд цепочка-источник, адресованный регистром SI из сегмента данных в регистр AL (AX или EAX) а затем изменяет регистр SI так, чтобы он указывал на следующий элемент цепо

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

Замена сегмента.
Можно ли изменить адресацию регистра SI (ESI) с сегмента данных на дополнительный сегмент? Можно, если использовать префикс замены сегмента, например: LEA SI, ES : H1; копирует байт из стр

Команды управления флагами.
Микропроцессор имеет команды для установки и сброса флага переноса (STC, CLC), флага направления (STD, CLD) и флага прерывания (STI, CLI). Есть также команда инвертирования флага переноса (CMC). Пе

Команды синхронизации.
Одним из средств синхронизации процессора с внешними устройствами являются прерывания, но в его архитектуре реализованы ещё две формы синхронизации: первая относится к использованию сопроцессора, в

Структура программы
Программа на языке ассемблера состоит из строк, имеющих следующий вид: Метка команда/директива операнды; комментарий. Все поля необязательны. Метка может быть любой комбинацией бу

Модели памяти
Модели памяти задаются директивой .MODEL. model модель, язык, модификатор, где модель – одно из следующих слов: TINY – код, данные и стек размещаются в одном и том же сегменте раз

Процедуры
Процедуройв ассемблере является всё то, что в других языках называют подпрограммами, функциями, процедурами и т.д. Ассемблер не накладывает на процедуры никаких ограничений- на люб

АРХИТЕКТУРА И СИСТЕМА КОМАНД АРИФМЕТИЧЕСКОГО СОПРОЦЕССОРА
Арифметический сопроцессор предназначен для вычислений над числами с плавающей точкой и может работать только в паре с основным процессором. Применение сопроцессора в задачах, использующих сложные

Целые числа
Целые двоичные числа могут быть представлены в трех различных форматах: 1. Целое слово - 16 бит (DW); 2. Короткое целое слово - 32 бита (DD); 3. Длинное целое слово - 64

Вещественные числа
Вещественные числа могут быть представлены тремя различными форматами: 1. Короткое вещественное (одинарная точность) -32 бита (DD); 1 бит 8

Диапазоны вещественных чисел в х87.
Внутреннее представление нормализованных чисел: Min число < 0   Max число < 0 знак поряд

Особые случаи вещественной арифметики
При реализации операций с вещественными числами возникают внутренние прерывания сопроцессора, называемыми особыми случаями сопроцессора (ОС). Если результат арифметической операции меньше минимальн

Случай неточного результата.
В качестве специального значения используется приближенное значение числа с плавающей точкой. Существуют четыре режима округления:

Численное антипереполнение.
Принято соглашение, что для денормализованного числа поле порядка 00..00 считается равным 00...01, но старший бит мантиссы равен 0 (а не 1). Для одинарной точности смещение равно 127, следовательно

Денормализованный операнд.
Для денормализованных операндов выполняются следующие правила формирования результатов операций: Результат равен 0, если он слишком мал для представления денормализованным числом (например

Деление на ноль.
Бесконечность - число, имеющее в поле порядка все единицы, а в поле мантиссы - все нули . Единица в старшем разряде хранится явно в расширенном формате. Так как поле знака может быть равным единице

Численное переполнение.
Численное переполнение наступает тогда, когда результат превышает наибольшее конечное число в формате приемника. Переполнение опасно, так как знак может оказаться неверным, а результат будет не бес

Численные регистры (регистровый стек).
Предназначен для выполнения вычислительных операций. Регистровый стек состоит из восьми регистров по 80 бит каждый, в которых представлены вещественные числа в расширенном формате. Адресация числен

Регистр управления (cw)
Предназначен для управления работой сопроцессора. Имеет размер – 16 бит. 15 13 11-10 9-8 7 6

Регистр состояния.

Регистр тэгов (признаков).
ТэгR7 ТэгR6

Указатели особого случая.
Предназначены для процедур обработки особых случаев. Они имеют два формата в зависимости от работы 80287 в реальном или защищенном режиме. Реальный режим

Команды передачи данных.
ТИП КОМАНДЫ МНЕМОНИКА И ФОРМАТ ОПЕРАНД/ДЕЙСТВИЕ КОМАНДЫ ЗАГРУЗКИ В СТЕК FLD REG/MEM Вещественно

Арифметические команды
Для безоперандных арифметических команд операндами по умолчанию являются регистры ST(0), ST(1). Для однооперандных арифметических команд - один из операндов - это вершина стека ST(0). Для

Дополнительные арифметические команды
МНЕМОКОД ОПИСАНИЕ FSQRT Извлечение квадратного корня FSCALE Масштабирование на степе

Команды сравнений
МНЕМОНИКА ОПИСАНИЕ FCOM операнд/(без операндов) Сравнение FICOM операнд Целочисленно

Трансцендентные команды
МНЕМОНИКА ОПИСАНИЕ FPTAN Частичный tg FPATAN Частичный arctg

Административные команды
Эта группа команд обеспечивает управление режимом работы сопроцессора. Для программиста особенно интересны команды работы с регистрами управления и состояния. МНЕ

Совместная работа двух процессоров в системе.
Выборку команд из общей очереди команд осуществляет центральный процессор. Если выбранная команда оказывается командой центрального процессора, он выполняет ее обычным образом, сопроцессор такие ко

Синхронизация по командам.
Если сопроцессор занят выполнением команды, а центральный процессор выбирает для выполнения следующую команду - опять команду сопроцессора, то центральный процессор не должен ее передавать сопроцес

Синхронизация по данным.
Если сопроцессорная команда записывает операнд в ячейку памяти, а следующая команда центрального процессора использует этот операнд в дальнейших вычислениях, ЦП должен ожидать завершения операции с

Контрольная работа №1
Реализовать ввод элементов массива с контролем допустимых кодов символов и диапазона значений элементов массива. Вывести элементы полученных массивов на экран. Вариант 1 Из исходн

Контрольная работа №2
Ввести с клавиатуры границы интервала значений аргумента функции, перевести их в формат вещественного числа, рассчитать шаг и вычислить значение функции в заданном интервале. Вывести на экран графи

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги