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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 72 73 74 75 76 77 < 78 > 79 80 81 82 83 84 .. 528 >> Следующая

на то, что применяется беззнаковое насыщение, следующий суффикс
И/определяет формат результата в виде упакованных байтов, а последний
суффикс В - формат исходных данных в виде упакованных слов.
MMX-команды поддерживают все способы адресации, реализуемые с
использованием байтов MODR/M и SIB. Формат MMX-команды показан на рис.
2.21. Любая ММХ команда начинается с байта OFh, затем идет второй байт
кода операции OpCode. Для указания используемых в команде MMX-регистров в
байте MODR/M в полях REG и R/M (при MOD = 11, регистровая адресация)
указываются номера используемых MMX-регистров mmxreg. Присутствие байтов
SIB, смещения DISP и непосредственного операнда IMM зависит от выбранного
способа адресации. Следует отметить, что MMX-регистры не могут служить
для формирования адреса.
Для команд пересылки операнд-приемник и операнд-источник могут
располагаться в памяти, регистре общего назначения или MMX-регистре. Для
остальных команд операнд-приемник всегда находится в MMX-регистре, а
операнд источник может находиться в памяти, MMX-регистре или являться
непосредственным операндом.
Если MMX-команда использует операнды, размещенные в памяти, то перед ней
могут присутствовать префиксы замены сегмента SEG и разрядности адреса
AS. Префиксы разрядности операнда OS и повторения REP, REPE/REPNE,
предшествующие ММХ-команде, игнорируются процессором. Наличие перед MMX-
командой префикса блокировки шины LOCK вызовет исключение типа #UD
("недействительный код операции").
При ошибках обращения к памяти MMX-команды генерируют исключения #SS,
#GP, #PF или #АС, как и остальные команды. Попытка выполнить MMX-команду,
когда в регистре управления CR0 установлено значение бита ЕМ = 1,
приводит к исключению типа #UD. Эмуляция ММХ-команд невозможна. Попытка
выполнить MMX-команду, когда в регистре управления CR0 бит TS = 1,
приводит к исключению типа #NM ("устройство недоступно"). Если при
обработке исключения FPU встретится MMX-команда, то это приведет к
исключению типа #MF и/или FERR#.
MMX-команды могут выполняться в любом режиме работы процессора: реальном,
защищенном и виртуального 8086.
MMX-регистры (рис. 2.22) имеют разрядность 64 бита и отображены на поля
мантиссы арифметических регистров блока FPU (см. рис. 2.4). При записи
нового значения в ММХ-регистр это значение автоматически появляется в
попе мантиссы (биты 63-0) соответствующего регистра FPU. При этом в поле
порядка (биты 78-64) и знаковый бит (бит 79) записываются единицы. После
выполнения любой MMX-команды в поле ТОР регистра FPSR (см. рис. 2.5),
указывающем вершину арифметического стека, записывается значение ООО.
Любая MMX-команда (кроме EMMS) заносит во все поля регистра тегов TW
значение 00. Для блока FPU это означает, что во всех регистрах находятся
допустимые ненулевые числа (все регистры заняты). Команда EMMS
устанавливает значения всех полей регистра тегов в 11 (для блока FPU это
означает, что все арифметические регистры пусты). Значение регистра TW,
содержащего теги, не оказывает никакого влияния на выполнение ММХ-команд.
При выполнении ММХ-команд содержимое регистров FPU устанавливается в
соответствии с табл. 2.39.
2.5. СИСТЕМА КОМАНД: ОПЕРАЦИИ ММХ
15 13
TW
Рис. 2.22. Отображение MMX-регистров на регистры блока FPU
Отображение MMX-регистров на регистры блока FPU фиксировано и не зависит
от значения поля ТОР регистра состояния FPSR. В обозначении ММп число п
указывает на физический номер регистра ММп -> Rn. Напомним, что при
выполнении операций FPU в обозначении регистра ST(n) число п указывает
относительный номер регистра, а его физический номер определяется
значением поля ТОР. Поэтому при значении ТОР = ООО регистр ММО
отображается на ST(0), ММ1 - на ST(1) и т. д.; при ТОР = 010 ММО
отображается на ST(6), ММ1 - на ST(7), ММ2-на ЗТ(0)ит.д.
Так как блоки ММХ и FPU используют физически одни и те же регистры, то
для сохранения и восстановления содержимого MMX-регистров используются
команды FSAVE и FRSTOR.
На рис. 2.23 приведены форматы упакованных данных, обрабатываемых ММХ-
комаццами:
• упакованные байты В7-0 (8 элементов по 8 бит, рис. 2.23,а);
• упакованные слова W3-0 (4 элемента по 16 бит, рис. 2.23,6);
• упакованные двойные слова D1-0 (2 элемента по 32 бита, рис. 2.23,в);
• упакованное счетверенное слово Q (1 элемент, 64 бита, рис. 2.23,г).
а)
63 56 56 48 47 40 39 32 31 24 23 16 15
8 7 0
I В7 | В6 | В5 | В4 | ВЗ | В2 | В1 | ВО |
б) 63 48 47 32 31 16 15 0
I W3 | W2 I W1 | W0 |
в) 63 32 31 0
I D1 I DO |
г) 63 0
I- Q - I
Рис. 2.23. Форматы упакованные данных: а)-байты, б)-слова, в)-двойные
слова, г) - счетверенное слово
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Таблица 2.39
Влияние ММХ-команд на содержимое регистров FPU
Тип команды Регистр TW Поле ТОР Поле порядка и знаковый бит ММп (79-64)
Поле мантиссы ММп (63-0)
Чтение из регистра ММп Запись в регистр ММп EMMS Все поля 00 Все поля
00 Все поля 11 000 000 000 Не изменяется Заполняется единицами Не
Предыдущая << 1 .. 72 73 74 75 76 77 < 78 > 79 80 81 82 83 84 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed