Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 65

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 59 60 61 62 63 64 < 65 > 66 67 68 69 70 71 .. 528 >> Следующая

памяти таблиц, в которых записаны базовые адреса разделов и страниц.
Команда RSM возвращает процессор из режима системного управления SMM к
выполнению программы, которая была прервана поступлением внешнего запроса
SMI#. При этом восстанавливается содержимое регистра процессора, которое
было сохранено в памяти при поступлении этого запроса.
Команды RDMSR, WRMSR позволяют загрузить содержимое одного из 64-
разрядных модельно-специфических регистров MSR в пару регистров EDX:EAX
или записать содержимое этой пары регистров в MSR. Выбор регистра MSR
определяется его кодом, который
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
предварительно заносится в регистр ЕСХ. Эти команды выполняются в
реальном режиме или защищенном режиме при максимальном уровне привилегии
программы CPL = 0. В других случаях попытка их выполнения вызовет
исключение типа #GP ("нарушение защиты").
Команда RDPMC производит загрузку в пару регистров EDX:EAX содержимого
одного из двух 64-разрядных счетчиков, используемых для мониторинга
производительности процессора. Эти счетчики входят в состав модельно-
специфических регистров процессора. Номер считываемого счетчика - 0 или 1
- задается содержимым регистра ЕСХ. Если в регистре управления CR4
установлено значение бита РСЕ = 1, то выполнение этой команды
производится при любом уровне привилегии текущей программы. Если значение
РСЕ = 0, то команда RDPMC выполняется только программой с уровнем
привилегии CPL = 0, а при других значениях CPL будет реализовано
исключение типа #GP ("нарушение защиты").
Команда RDTSC загружает в пару регистров EDX:EAX содержимое счетчика
текущего времени TSC (Time-Stamp Counter), который также является одним
из модельно-специфических регистров MSR. Счетчик TSC переключается в
каждом такте работы процессора и сбрасывается в ноль при его перезапуске
(reset). Выполнение этой команды производится при любом уровне привилегии
текущей программы, если в регистре управления CR4 установлено значение
бита TSD = 0. При TSD = 1 команда выполняется только программой с уровнем
привилегии CPL = 0, в противном случае реализуется исключение#GP.
2.3.5. ПРЕФИКСНЫЕ БАЙТЫ
Префиксы (табл. 2.25), имеющие разрядность один байт, оказывают влияние
на выполнение команды, которой они предшествуют. Таким образом, они
являются дополнительными программными средствами, управляющими работой
процессора.
Префикс SEG определяет выбор сегмента CS, DS, ES, FS, GS или SS для
адресации операнда в выполняемой команде. При отсутствии этого префикса
сегмент выбирается по умолчанию согласно табл. 2.8. Префикс действует,
если команда выбирает операнд из памяти; в противном случае он не
учитывается.
Префиксы AS, OS позволяют при выполнении последующей команды изменять
разрядность адреса и операнда в соответствии с табл. 2.14.
Префикс блокировки LOCK, который используется для организации работы
мультипроцессорных систем, вызывает установку на выходе LOCK# процессора
низкого потенциала, запрещающего другим устройствам системы (процессорам)
обращаться к системной шине в течение времени выполнения последующей
команды. Префикс LOCK может предшествовать только командам ADD, XADD,
ADC, SUB, SBB, AND, OR, XOR, DEC, INC, NEG, NOT, ВТ, BTC, BTR, BTS,
CMPXCHG и XCHG. Использование префикса LOCK перед другими командами
вызовет прерывание с номером Ne = 6 (#UD - неразрешенный код операции).
Префиксы повторения REP, REPE/REPZ и REPNE/REPNZ применяются только с
командами операций над строками. Префикс REP используется с командами
INS, OUTS, MOVS и STOS и вызывает их повторение до тех пор, пока
содержимое регистра ЕСХ (или СХ)>0. С командами CMPS и SCAS используются
префиксы REPE или REPNE. Префикс REPE (возможная форма REPZ) обеспечивает
повторение команды до тех пор, пока значение признака ZF = 0, т. е.
поступают одинаковые символы. При поступлении различных операндов
устанавливается значение ZF = 1, и выполнение команды прекращается. Если
все операнды в строках одинаковы, то команда выполняется до получения
ЕСХ(СХ) = 0, т. е. до конца строки. Префикс REPNE (возможная форма REPNZ)
вызывает повторение команды, пока значение признака ZF = 0 (сравниваемые
символы не одинаковы). Выполнение команды прекращается либо при
поступлении одинаковых символов, когда устанавливается ZF = 1, либо при
получении ЕСХ(СХ) = 0 (конец строки), если в строке отсутствуют
одинаковые признаки.
СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ТОЧКОЙ
Таблица 2.25
Команды управления процессором и префиксные байты
Синтаксис команды Операция
LMSW Г/ГП16 r/ml6 -> MSW (биты 15-0 регистра CRO)
SMSW r/m 16 MSW -> r/m 16
NOP HLT CPUID Отсутствие операции Останов процессора Информация о
процессоре -> ЕАХ,ЕВХ,ЕСХ,EDX
INVD Аннулирование содержимого внутренней кэш-памяти данных и кэш-памяти
2-го уровня (L2)
WBINVD Аннулирование содержимого внутренней кэш-памяти данных и кэш-
памяти 2-го уровня (L2) с обратной записью в основную память
Предыдущая << 1 .. 59 60 61 62 63 64 < 65 > 66 67 68 69 70 71 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed