Главная » Просмотр файлов » Жмакин А.П. Архитектура ЭВМ (2006)

Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 31

Файл №1186252 Жмакин А.П. Архитектура ЭВМ (2006) (Жмакин А.П. Архитектура ЭВМ (2006)) 31 страницаЖмакин А.П. Архитектура ЭВМ (2006) (1186252) страница 312020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 31)

□ ловушка контрольной точки по переключению задачи (в сегменте TSS бит' Т= 1).

Немаскируемое прерывание NMI (2)— единственное внешнее радиальное прерывание.

Контрольная точка (3)— формируется при выполнении команды int3 (код операции — CCh). Передача управления обработчику особого случая являет­ся частью команды int3, адрес возврата в стеке относится к началу следую­щей команды. Тот же обработчик вызывается при выполнении внешнего пре­рывания с вектором 03 или двухбайтовой команды int 03.

Переполнение (4) — возникает при выполнении команды into при условии установки в 1 флага переполнения OF. Как и для int3, передача управления обработчику особого случая является частью команды into, адрес возврата в стеке относится к началу следующей команды. Обычно команда into приме­няется в компиляторах для выявления переполнения в арифметике знаковых чисел. Тот же обработчик вызывается при выполнении внешнего прерывания с вектором 04 или команды int 04.

Нарушение границы массива (5)— возникает при выполнении команды bound, если контрольная проверка дает отрицательный результат, т. е. прове­ряемый (первый) операнд не попадает в диапазон значений, определенных вторым (нижняя граница) и третьим (верхняя граница) операндами команды.

Недействительный код операции (6)— генерируется, когда операционное устройство процессора обнаруживает неверный код операции, несоответст­вие типа операндов коду операции, попытку выполнения привилегированных команд в R-режиме, неверные байты mod r/m или sib, использование префик­са блокировки LOCK с командами, которые нельзя блокировать. Характерно, что существует несколько одно- и двухбайтовых кодов, зарезервированных фирмой Intel для развития системы команд, и хотя им в 80486 не соответст­вуют никакие команды, зарезервированные коды не вызывают особого случая.

Устройство^ недоступно (7) — возникает в двух ситуациях:

□ процессор выполняет команду esc и бит ЕМ (эмуляция сопроцессора) в регистре CR0 установлен в 1;

□ процессор выполняет команду wait или esc и бит TS (переключение зада­чи) в регистре CR0 установлен в 1.

В первом случае программист намерен выполнить операции плавающей арифметики программно.

Второй случай может возникнуть после переключения задачи. Бит TS аппа-ратно устанавливается в 1 при переключении задачи, а первая же встретив­шаяся в новой задаче команда сопроцессора вызывает особый случай 7, ибо контекст устройства с плавающей точкой старой задачи не сохранен. Обра­ботчик особого случая 7 сохраняет старое состояние устройства с плавающей точкой в сегменте TSS старой задачи и загружает новое состояние устройства из сегмента TSS новой задачи. (В случае работы цепочки вложенных задач обработчик должен программно отследить ту старую задачу, которая послед­ней использовала FPU.) После этого привилегированной командой clts сбра­сывается флажок TS и осуществляется возврат на команду устройства с пла­вающей точкой. Так как теперь флаг TS сброшен, команда сопроцессора бу­дет выполнена.

Двойное нарушение (8)— обычно, когда процессор обнаруживает особый случай при попытке вызвать обработчик предыдущего особого случая, два особых случая обрабатываются последовательно. Если процессор не может обрабатывать их последовательно, он сигнализирует о двойном нарушении.

Для определения того, когда о двух нарушениях следует сообщать как о двойном нарушении, процессор подразделяет все особые случаи на три класса:

□ легкие особые случаи — векторы 1, 2, 3, 4, 5, 6, 7,16;

□ тяжелые особые случаи — векторы 0, 10, 11, 12,13;

□ страничные нарушения — вектор 14.

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

Если при попытке вызвать обработчик двойного нарушения возникает любое другое нарушение, процессор переходит в режим отключения. Этот режим аналогичен состоянию процессора после выполнения команды hlt. До вос­приятия сигналов NMI или RESET никакие команды не выполняются, причем если отключение возникло при выполнении обработчика немаскируемого прерывания, запустить процессор может только сигнал RESET. Недействительный сегмент TSS (10)— возникает при попытке переключе­ния на задачу с неверным сегментом TSS. Поскольку сегмент TSS может оп­ределять LDT, сегменты кода, стека, данных, к особому случаю 10 относятся ситуации с нарушением границ этих сегментов, нарушением прав доступа, запретом записи в сегмент стека и др. Нарушения могут возникать как в ком-тексте старой, так и новой задачи, поэтому обработчик особого случая 10 должен сам быть задачей и вызываться через шлюз задачи (десятая строка IDT должна содержать шлюз задачи).

Неприсутствие сегмента (11)— формируется, когда бит присутствия сег­мента в дескрипторе Р = 0. Это нарушение допускает рестарт, если обработ­чик особого случая 11 реализует механизм виртуальной памяти на уровне сегментов.

Нарушение стека (12) — возникает в двух ситуациях:

□ в результате нарушения предела любой операции, которая обращается к регистру SS (pop, push, enter, неявное использование стека при обращении к памяти, например, mov ах, [вр+6]);

□ при попытке загрузить в регистр SS дескриптор, который отмечен непри­сутствующим.

Нарушение общей защиты (13) — все нарушения защиты, которые не служат причиной конкретного особого случая, вызывают особый случай общей за­щиты:

□ превышение предела сегмента (кроме стека);

□ передача управления сегменту, который не является выполняемым;

□ запись в защищенный от записи сегмент;

□ считывание из выполняемого сегмента;

□ загрузка в SS селектора сегмента, защищенного от записи;

□ загрузка в регистры SS, DS, ES, FS, GS селектора системного сегмента;

□ загрузка в регистры SS, DS, ES, FS, GS селектора выполняемого сегмента;

□ обращение к памяти через DS, ES, FS, GS, когда в них пустой селектор;

□ переключение на занятую задачу;

□ нарушение правила привилегий и др.

Страничное нарушение (14)— возникает, когда разрешено страничное пре­образование и имеет место одна из следующих ситуаций:

□ в элементе каталога разделов или таблицы страниц, используемом для преобразования линейного адреса в физический, сброшен бит присут­ствия;

□ процедура не имеет достаточного уровня привилегий для доступа к адре­суемой странице. Ошибка операции с плавающей точкой (16)— сигнализирует об ошибке, возникшей в команде устройства с плавающей точкой.

Контроль выравнивания (17)— возникает при нарушении выравнивания операндов. Операнды считаются выровненными, если адрес двухбайтового слова является четным (младший разряд равен 0), адрес четырехбайтового двойного слова кратен 4, а адрес восьмибайтовой структуры данных кратен 8. Для разрешения контроля выравнивания должны выполняться три условия:

□ бит AM в регистре CR3 установлен;

□ флаг АС установлен;

□ выполняется программа на уровне привилегий 3.

7.4. Средства отладки

Традиционно средства отладки микропроцессоров ограничивались наличием:

□ короткой команды программного прерывания, которую можно было уста­навливать вместо первого байта любой команды;

□ аппаратной реализации пошагового (покомандного) режима, который инициировался установкой специального бита Т в регистре флагов.

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

Основу средств отладки в процессорах *86 старших моделей составляют спе­циализированные регистры отладки — программируемые регистры задания контрольных точек, регистры управления и состояния отладки. Они заменяют собой средства аппаратных внутрисхемных эмуляторов. Процессоры *86 старших моделей обеспечивают не только покомандную работу, но и регист­рацию переключения на конкретную задачу, установку контрольных точек по адресам команд и фиксацию модификации значений переменных в памяти.

Регистры отладки поддерживают контрольные точки по командам и данным. В общем, под контрольной точкой понимается адрес, при использовании ко­торого программой возникает особый случай отладки. Установка контроль­ной точки по команде обеспечивает регистрацию команды по любому линей­ному адресу. Задание контрольной точки по данным позволяет узнать, когда производится обращение к конкретной переменной.

Отладочные средства х86 включают в себя:

□ однобайтовую команду контрольной точки татз, которую можно вставлять в программу по любому адресу; при выполнении этой команды генериру­ется особый случай отладки;

□ флаг пошагового режима TF в регистре EFLAGS, позволяющий выпол- j нить программу по командам;

□ четыре регистра отладки DR0—DR3, которые определяют четыре незави- I симые контрольные точки по командам или данным; регистр управления ] отладкой DR7 и регистр состояния отладки DR6;

□ флаг ловушки Т в TSS, который вызывает особый случай отладки при пе- I реключении на задачу с установленным в 1 битом Т;

□ флаг возобновления RF в регистре EFLAGS, с помощью которого подав­ляются многократные особые случаи в одной и той же команде.

Все эти средства действуют как ловушки, следя за возникновением условий, представляющих интерес для программиста. Когда возникает такое условие, формируется особый случай отладки (с вектором 1); только команда штз ге­нерирует прерывание с вектором 3. Зарезервированный вектор отладки 1 уп­рощает процедуру вызова отладчика.

Итак, отладчик по вектору 1 вызывается в следующих случаях:

□ при TF = 1 после каждой команды;

□ при TTSS = 1 в момент переключения на задачу;

□ ловушка контрольной точки по данным;

□ нарушение контрольной точки по команде.

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

Программные контрольные точки задаются путем замены обычных команд на команды гатз — при этом требуется осуществлять запись в сегмент кода (создавать альтернативный сегмент данных), а после отладки — восстанавли­вать исходный код. Использование аппаратных контрольных точек исключа­ет необходимость модификации кода (можно отлаживать программу, разме­щенную в ПЗУ), а так же допускает контроль обращения к данным.

Рассмотренные средства позволяют вызывать отладчик как процедуру в кон­тексте текущей задачи или как отдельную задачу при выполнении одного из следующих условий:

□ выполнение команды контрольной точки шгз;

□ выполнение любой команды (при TF = 1);

□ выполнение команды по указанному адресу;

□ считывание или запись байта, слова или двойного слова по указанному адресу;

запись байта, слова или двойного слова по указанному адресу;

переключение на конкретную задачу;

попытка изменить содержимое регистра отладки.

7.4.1. Регистры отладки

Регистры отладки, форматы которых приведены на рис. 7.14, включают в себя:

□ четыре регистра DR0—DR3, предназначенные для хранения линейных адресов четырех контрольных точек, каждая из которых независимо мо­жет быть определена как контрольная точка по команде или по данным;

□ регистр DR7 управления отладкой, включающий поля, которые определя­ют свойства контрольных точек и некоторые параметры процесса отладки;

□ регистр DR6 состояния отладки, предназначенный для идентификации причины прерывания отладки;

□ наконец, зарезервированные регистры DR5, DR4.

Рассмотрим форматы регистров состояния и управления.

Выше отмечалось, что все события отладки, кроме int3, вызывают прерыва­ние с вектором 1. Следовательно, при возникновении особого случая отладки встает вопрос о причине прерывания. Именно для идентификации причин прерывания 1 предусмотрен регистр состояния отладки DR6.

Младшие четыре бита ВО—ВЗ относятся к четырем контрольным точкам и единичное состояние В/ означает достижение контрольной точки, линейный адрес которой находится в регистре DR/.

Флаг BS (Step) устанавливается в 1, когда процессор начинает отрабатывать особый случай, вызванный ловушкой покомандной работы, т. е. при BS = 1 причиной особого случая является состояние TF = 1 регистра EFLAGS. Этот случай имеет высший приоритет среди всех случаев отладки, когда BS = 1, могут быть установлены и другие биты состояния отладки.

Флаг ВТ (Task) устанавливается в 1, когда особый случай отладки вызван пе­реключением на задачу, в TSS которой установлен бит ловушки Т =1.

Регистры отладки доступны (по записи или чтению) только в реальном ре­жиме или в защищенном режиме по привилегированной (т. е. разрешенной к выполнению только на нулевом уровне) команде mov:

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее