Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Регистры отладки ⇐ ПредыдущаяСтр 4 из 4
Это группа регистров предназначена для аппаратной отладки. Средства аппаратной отладки впервые появились в микропроцессоре i486. Аппаратно микропроцессор содержит 8 регистров отладки, но реально из них используются только 6. Регистры DR0, DR1, DR2, DR3 имеют разрядность 32 бит и предназначены для задания линейных адресов четырех точек прерывания. Используемый при этом механизм следующий: любой формируемый текущей программой адрес сравнивается с адресами в регистрах DR0...DR3, и при совпадении генерируется исключение отладки с номером 1. Регистр DR6 называется регистром состояния отладки. Биты этого регистра устанавливаются в соответствии с причинами, которые вызвали возникновение последнего исключения с номером 1. Перечислим эти биты и их назначение: - B0 - если этот бит установлен в 1, то последнее исключение (прерывание) возникло в результате достижения контрольной точки, определенной в регистре dr0; - B1 - аналогично b0, но для контрольной точки в регистре dr1; - B2 - аналогично b0, но для контрольной точки в регистре dr2; - B3 - аналогично b0, но для контрольной точки в регистре dr3; - BD (бит 13) - служит для защиты регистров отладки; - BS (бит 14) - устанавливается в 1, если исключение 1 было вызвано состоянием флага tf = 1 в регистре eflags; - BT (бит 15) устанавливается в 1, если исключение 1 было вызвано переключением на задачу с установленным битом ловушки в TSS t = 1. Все остальные биты в этом регистре заполняются нулями. Обработчик исключения 1 по содержимому DR6 должен определить причину, по которой произошло исключение, и выполнить необходимые действия. Регистр DR7 называется регистром управления отладкой. В нем для каждого из четырех регистров контрольных точек отладки имеются поля, с помощью которых можно уточнить следующие условия, при которых следует сгенерировать прерывание: - место регистрации контрольной точки - только в текущей задаче или в любой задаче. Эти биты занимают младшие восемь бит регистра DR7 (по два бита на каждую контрольную точку (фактически точку прерывания), задаваемую регистрами DR0, DR1, DR2, DR3 соответственно). - тип доступа, по которому инициируется прерывание: только при выборке команды, при записи или при записи/чтении данных. Биты, определяющие подобную природу возникновения прерывания, локализуются в старшей части данного регистра. Большинство из системных регистров программно доступны.
|