logo

Главная Система команд x86 Базовая система команд CPU MOV DR

Система команд x86

Программирование - Архитектура и система команд микропроцессоров x86
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

MOV DR

Переслать в/из отладочного регистра

Влияние команды на флаги и форматы команды:

OF

DF

IF

TF

SF

ZF

AF

PF

CF

?

 

 

 

?

?

?

?

?

 

Код

Команда

Описание

Проц.

Пример

0F 21 /r

MOV r32,DRx

DRx = r32

Intel386

mov eax,dr0

0F 23 /r

MOV DRx,r32

r32 = DRx

Intel386

mov dr0,eax

Описание:

Команда MOV DR предназначена для пересылки данных между отладочными регистрами DR0, DR1, DR2, DR3, DR6 и DR7 и регистрами общего назначения. С этими командами всегда используются 32-битные операнды независимо от атрибута размера операнда.

В процессорах, начиная с Pentium, когда бит DE (расширенние отладки) в CR4 сброшен, команды MOV DR, работают аналогично тому, как это происходит в процессорах Intel386 и Intel486 (cсылки на регистры DR4 и DR5 перенаправляются на DR6 и DR7 соответственно). Когда же бит DE в CR4 установлен, попытки выполнить команду MOV, использующую DR4 или DR5, вызывают генерацию особой ситуации #UD.

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

Код операции для данной команды формируется с некоторыми особенностями. Поле reg байта ModR/M задает отладочный регистр, поле mod всегда находится в значении 11b, а поле r/m задает регистр общего назначения.

Операция:

IF (DE = 1) and (SRC or DEST = DR4 or DR5))

  THEN #UD;

  ELSE DEST = SRC;

FI;

Особые ситуации защищенного режима:

#GP(0), если текущий уровень привилегий не равен 0. #UD, если бит CR4.DE = 1 и команда MOV выполняется для DR4 или DR5.
#DB, если происходит попытка доступа к отладочным регистрам при DR7.GD = 1.

Особые ситуации режима реальной адресации:

#UD, если бит CR4.DE = 1 и команда MOV выполняется для DR4 или DR5.
#DB, если происходит попытка доступа к отладочным регистрам при DR7.GD = 1.

Особые ситуации режима V86:

#GP(0), при попытке выполнить команду.

Замечание:

В некоторых процессорах Intel возможна генерация особой ситуации #DB вместо #GP в режиме V86, когда DR7.GD =1 и производится попытка записи в регистр отладки. Обратитесь к технической документации Intel за описанием всех возможных случаев проявления ошибки.


Входит в группу команд: Базовая система команд CPU




Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru

Top.Mail.Ru       Сервер радиолюбителей России - схемы, документация,

 соревнования, дипломы, программы, форумы и многое другое!   схемы новости электроники