December 12 2017 08:25:28
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Биты регистра DR
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ

BD - отказ при обращении к регистрам отладки при установленном бите GD в регистре DR7. Значение BD = 1 устанавливается, если исключение #DB происходит из-за попытки обратиться к регистрам отладки, когда установлен бит GD в регистре управления отладкой DR7. Перед передачей управления обработчику исключения #DB бит GD в регистре управления отладкой DR7 сбрасывается в «0». Это дает возможность обработчику исключения #DB обращаться к регистрам отладки.

Bi—останов в i-й контрольной точке. Четыре бита индикации останова соответствуют четырем регистрам DR0-DR3. Значение В/= 1 устанавливается при выполнении условий, оп­ределенных регистром DR/ и полями LEN/, R/W/ в регистре DR7. Биты В/ устанавливаются в «1» даже в том случае, когда соответствующая точка останова не разрешена с помощью битов L/7G/ в регистре DR7. Если одновременно выполняются условия для нескольких точек останова и хотя бы одна из этих точек останова разрешена, то реализуется исключение #DB. При этом значения битов В/ = 1 будут установлены для всех точек останова.

Биты регистра DR6 устанавливаются в «1» аппаратно при реализации соответствующих исключений. Сброс этих битов в нулевое значение выполняется программно, путем загрузки нового содержимого в регистр DR6. Эта процедура осуществляется программой обработки исключения #DB, которая перед возвратом к исходной программе должна очистить регистр DR6, установив значение «0» для всех битов.

Поддержка отладки с помощью MSR-регистров. Процессоры семейства Р6 содержат пять MSR регистров, которые предоставляют дополнительные возможности отладки: DebugCtlMSR (адрес 1 D9h), LastBranchTolP (адрес 1 DCh), LastBranchFromlP (адрес 1 DBh), LastExceptionTolP (адрес 1DEh) и LastExceptionFromlP (адрес 1DDh).

На рис. 2.64 приведен формат содержимого регистра DebugCtlMSR, с помощью которого производится управление режимом отладки. Его отдельные биты имеют следующее назначение:

BTF - бит разрешения пошаговых ветвлений. Когда значение BTF = 1, процессор интерпретирует значение признака TF = 1 в регистре EFLAGS как «пошаговые ветвления», а не «пошаговые команды». Это означает, что исключение #DB будет генерироваться только при обнаружении ветвления, прерывания или исключения. Бит BTF автоматически устанавливается в «0» перед передачей управления обработчику исключения #DB.


31 7 6 5 4 3 2 1 0

Резервировано TR РВ3 РВ2 РВ1 РВ0 BTF LBR

Рис. 2.64. Формат содержимого регистра DebugCtlMSR

PBi - биты разрешения выдачи внешних сигналов при останове в контрольных точках. Когда бит Pbi = 1, то на соответствующем выходе процессора устанавливается сигнал BPi# = 0 при останове в контрольной точке, определенной регистром DRi. Когда значение битов PBi = 0, то выводы BPi# используются для вывода данных о мониторинге производительности процессора.

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

LBR - бит разрешения записи информации о ветвлениях. При установке значения LBR = 1 процессор фиксирует все передачи управления. Когда происходит ветвление, процессор заносит в регистр LastBranchFromlP адрес команды ветвления, а в регистр LastBranchTolP-адрес самого перехода. Если реализуется прерывание или исключение (кроме исключения #DB), процессор копирует значение регистров LastBranchFromlP и LastBranchTolP в регистры LastExceptionFromlP и LastExceptionTolP соответственно. Затем адрес прерванной команды заносится в регистр LastBranchFromlP, а адрес вызываемого обработчика - в регистр LastBranchTolP. Бит LBR автоматически устанавливается в «0» перед передачей управления обработчику исключения #DB.

Таким образом, использование отладочных MSR-регистров обеспечивает дополнительные возможности контроля выполнения программы в процессе ее отладки.

Режим зондовой отладки. Этот способ отладки реализуется с помощью тестового порта ТАР, который служит для тестирования процессора и подключенных к нему устройств системы. Специальный режим «зондовой» отладки (Probe Mode) позволяет использовать порт ТАР для ввода команд и данных, чтения и записи содержимого всех внутренних регистров процессора. С помощью этого режима можно обеспечить выполнение отлаживаемой программы, контролируя и корректируя содержимое регистров.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.04 секунд 2,295,824 уникальных посетителей