December 17 2017 04:12:22
Навигация
Авторизация
Логин

Пароль



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

Забыли пароль?
Запросите новый здесь.
Команды преобразования из формата с плавающей точкой в целочисленный формат
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ

PI2PS - два двойных целых числа со знаком в два числа ОТ; SI2SS - одно двойное целое число со знаком в одно число ОТ; PS2PI -два числа ОТ в два двойных целых числа со знаком; SS2SI - одно число ОТ в одно двойное целое число со знаком.

Таблица 2.55 Команды преобразования из формата с плавающей точкой в целочисленный формат и наоборот

Синтаксис команды Операция
CVTPI2PS xmm,mm/m64 mm/m64(D1,D0) ® xmm(F1,F0)
CVTSI2SS xmm,i7m32 r/m32 ® xmm(F0)
CVTPS2PI mm,xmm/m64 xmm/m64(F0,F1) ® mm(D0,D1) (округление)
CVTTPS2PI mm,xmm/m64 xmm/m64(F0,F1) ® mm(D0,D1) (отброс дробной части)
CVTSS2SI r32,xmm/m32 xmm/m32(F0) ® r32 (округление)
CVTTSS2SI r32,xmm/m32 xmm/m32(F0) ® r32 (отброс дробной части)

Команды CVTPI2PS, CVTSI2SS выполняют преобразование 32-разрядных целых чисел в формат чисел с плавающей точкой ОТ. Команда CVTPI2PS преобразует два двойных слова со знаком D1, D0, хранящихся в ММХ-регистре mm или ячейке памяти mm64, в два числа ОТ, которые записываются в качестве младших элементов F1, F0 в SSE-регистр mmx. Два старших элемента F3, F2 в SSE-регистре при этом не изменяются. Команда CVTSI2SS преобразует одно двойное слово со знаком D0, которое содержится в регистре общего назначения r (регистры с именами ЕАХ.....EDI) или ячейке памяти m32, в одно число одинарной точности. Это число заносится в качестве младшего элемента F0 в SSE-регистр mmx. Три старших элемента F3-F1, хранящихся в этом регистре, не изменяются. При выполнении данных команд в случае необходимости осуществляется округление результата в соответствии со значением поля RC в регистре MXCSR.

Команды CVTPS2PI и CVTTPS2PI осуществляют преобразование двух чисел ОТ, являющихся младшими элементами F1, F0 в SSE-регистре mmx или хранящихся в ячейке памяти m64, в два целых двойных слова со знаком D1, DO, которые записываются в ММХ-регистр mm. Команда CVTPS2PI выполняет округление в соответствии со значением поля RC регистре MXCSR, а команда CVTTPS2PI отбрасывает дробную часть. Если результат преобразования не может уместиться в двойное слово со знаком, то в качестве соответствующего элемента результата заносится число 80000000h.

Команды CVTSS2SI и CVTTSS2SI преобразуют одно число ОТ, хранящееся в SSE-регистре mm или ячейке памяти m32, в двойное слово со знаком, которое поступает в регистр общего назначения r. Команда CVTSS2SI выполняет округление, как это задается значением поля RC в регистре MXCSR, а команда CVTTSS2SI отбрасывает дробную часть. Если результат не может уместиться в двойное слово со знаком, то в регистре r устанавливается значение 80000000h.

Если элементом исходного операнда является не-число (SNaN или QnaN), то выполнение команд CVTPS2PI, CVTSS2SI, CVTTPS2PI, CVTTSS2SI вызывает исключение типа #1. Если при этом установлено значение бита маски IM = 1 (исключение маскировано), то результатом операции будет целое число 80000000h.

Все команды данной группы реализуют исключение типа #Р, если преобразование не может быть выполнено точно.

2.6.7. КОМАНДЫ УПРАВЛЕНИЯ

Команды данной группы приведены в табл. 2.56.

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
Резервировано ST1/MM1 48
Резервировано ST2/MM2 64
Резервировано ST3/MM3 80
Резервировано ST4/MM4 96
Резервировано ST5/MM5 112
Резервировано ST6/MM6 128
Резервировано ST7/MM7 144
ХММ0 160
ХММ1 176
ХММ2 192
ХММЗ 208
ХММ4 224
ХММ5 240
ХММ6 256
ХММ7 272
Резервировано 288






Резервировано 496

Рис. 2.38. Размещение в памяти содержимого регистров при выполнении команды FXSAVE

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

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

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

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