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

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

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 84 85 86 87 88 89 < 90 > 91 92 93 94 95 96 .. 528 >> Следующая

формат
и наоборот
Синтаксис команды Операция
CVTPI2PS хглт.тт/тбД CVTSI2SS хтт,г/т32 CVTPS2PI тт,хтт/т64 CVTTPS2PI
тт,хтт/т64 CVTSS2SI г32,хтт/т32 CVTTSS2SI г32,хтт/т32 mm/m64(D1 ,D0) ->
xmm(F1 ,F0) r/m32 -> xmm(FO) xmm/m64(F0,F1) -> mm(D0,D1) (округление)
xmm/m64(F0,F1) -> mm(D0,D1) (отброс дробной части) xmm/m32(F0) -> r32
(округление) xmm/m32(F0) -"г32 (отброс дробной части)
Команды CVTPI2PS, CVTSI2SS выполняют преобразование 32-разрядных целых
чисел в формат чисел с плавающей точкой ОТ. Команда CVTPI2PS преобразует
два двойных слова со знаком D1, DO, хранящихся в MMX-регистре mm или
ячейке памяти mm64, в два числа ОТ, которые записываются в качестве
младших элементов F1, F0 в SSE-регистр mmx. Два старших элемента F3, F2 в
SSE-регистре при этом не изменяются. Команда CVTSI2SS преобразует одно
двойное слово со знаком DO, которое содержится в регистре общего
назначения г (регистры с именами ЕАХ,..., EDI) или ячейке памяти т32, в
одно число одинарной точности. Это число заносится в качестве младшего
элемента F0 в SSE-регистр mmx. Три старших элемента F3-F1, хранящихся в
этом регистре, не изменяются. При выполнении данных команд в случае
необходимости осуществляется округление результата в соответствии со
значением поля RC в регистре MXCSR.
Команды CVTPS2PI и CVTTPS2PI осуществляют преобразование двух чисел ОТ,
являющихся младшими элементами F1, F0 в SSE-регистре mmx или хранящихся в
ячейке памяти т64, в два целых двойных слова со знаком D1, DO, которые
записываются в ММХ-ре-гистр mm. Команда CVTPS2PI выполняет округление в
соответствии со значением поля RC регистре MXCSR, а команда CVTTPS2PI
отбрасывает дробную часть. Если результат преобразования не может
уместиться в двойное слово со знаком, то в качестве соответствующего
элемента результата заносится число 80000000h.
Команды CVTSS2SI и CVTTSS2SI преобразуют одно число ОТ, хранящееся в SSE-
регистре mm или ячейке памяти т32, в двойное слово со знаком, которое
поступает в регистр общего назначения г. Команда CVTSS2SI выполняет
округление, как это задается значением поля RC в регистре MXCSR, а
команда CVTTSS2SI отбрасывает дробную часть. Если результат не может
уместиться в двойное слово со знаком, то в регистре г устанавливается
значение 80000000h.
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ
Если элементом исходного операнда является не-число (SNaN или QnaN), то
выполнение команд CVTPS2PI, CVTSS2SI, CVTTPS2PI, CVTTSS2SI вызывает
исключение типа #1. Если при этом установлено значение бита маски IM = 1
(исключение маскировано), то результатом операции будет целое число
80000000h.
Все команды данной группы реализуют исключение типа #Р, если
преобразование не может быть выполнено точно.
2.6.7. КОМАНДЫ УПРАВЛЕНИЯ
Команды данной группы приведены в табл. 2.56.
Команды FXRSTOR и FXSAVE производят сохранение и восстановление
содержимого регистров FPU/MMX и SSE. При выполнении этих команд операндом
является блок данных размером 512 байт, начальный адрес его размещения в
памяти m512byte задается в команде. В отличие от команды FSAVE команда
FXSAVE не изменяет содержимое этих регистров после его сохранения. Для
очистки регистров после команды FXSAVE необходимо выполнить команду
FINIT. Содержимое регистров, сохраненное в памяти с помощью команды
FSAVE, не может быть восстановлено с помощью команды FXRSTOR, и наоборот,
содержимое регистров, сохраненное с помощью команды FXSAVE, не может быть
восстановлено с помощью команды FRSTOR. Размещение в памяти содержимого
регистров, выполняемое по команде FXSAVE, показано на рис. 2.38. Если при
восстановлении (загрузке из памяти) по команде FXRSTOR зарезервированные
биты в регистре MXCSR примут значение "1", то это приведет к исключению
#GP (нарушение общей защиты).
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Резерв. | CS EIP СОР TW FPSR | FPCR 0
Резервировано MXCSR Резерв. DS ЕА 16
Резервировано ST0/MM0 32 N
Резервировано ST1/MM1 48 . |
Резервировано ST2/MM2 64 'fi
Резервировано ST3/MM3 80
Резервировано ST4/MM4 96
Резервировано ST5/MM5 112
Резервировано ST6/MM6 128
Резервировано ST7/MM7 144 м
ХММО 160 и-*
ХММ1 176
ХММ2 192
ХММЗ 208
ХММ4 224
ХММ5 240 , t
ХММ6 256 я
ХММ7 272 ;ч
Резервировано 288

¦
it
Резервировано 496
Рис. 2.38. Размещение в памяти содержимого регистров при выполнении
команды FXSAVE
СИСТЕМА КОМАНД: ОПЕРАЦИИ SSE
Таблица 2.56
Команды управления
Синтаксис команды Операция
FXRSTOR m512byte FXSAVE m512byte LDMXCSR m32 STMXCSR т32 Загрузка из
памяти содержимого FPU/ММХ и SSE-регистров Сохранение в памяти
содержимого FPU/ММХ и SSE-регистров m32 -" MXCSR MXCSR -" т32
Команда STMXCSR сохраняет содержимое регистра MXCSR в ячейке памяти с
адресом т32. На месте зарезервированных бит в память записываются нули.
Команда LDMXCSR загружает (восстанавливает) содержимое регистра MXCSR из
Предыдущая << 1 .. 84 85 86 87 88 89 < 90 > 91 92 93 94 95 96 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed