Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Целочисленное MMX расширение




Логарифмы и степени.

Тригонометрические.

Вспомогательные команды.

Команда Описание
FABS Floating-point ABSolute value Нахождение абсолютного значения. ST(0) = ABS(ST(0)).
FCHS Floating-point CHange Sign Изменение знака ST(0) = -ST(0).
FSQRT Floating-point calculation of SQuare Root Извлечь квадратный корень из ST(0) и поместить обратно. Исходный операнд предварительно должен быть занесен в стек ST(0) = X.
FSCALE Floating-point SCALE. Масштабирование. Умножение X на 2 в степени Y. Исходные операнды предварительно должны быть занесены в стек ST(0) = X, ST(1) = Y. ST(0) = ST(0) * 2^ST(1).
FPREM Floating-point Partial REMinder Нахождение частичного остатка от деления ST(0) на ST(1).
FPREM1 Floating-point Partial REMinder IEEE-754 Нахождение частичного остатка от деления ST(0) на ST(1) (в стандарте IEEE).
FRNDINT Floating-point RouND INTeger Округление до ближайшего целого числа, находящегося в ST(0). ST(0) = int(ST(0)).
Команда Описание
FCOS Floating-point calculation of COSine. Косинус. ST(0) = COS(ST(0)). Содержимое в ST(0) интерпретируется как угол в радианах.
FPTAN Floating-point Partial TANgent. Частичный тангенс. Содержимое в ST(0) интерпретируется как угол в радианах. Значение тангенса возвращается на место аргумента, а затем в стек включается 1.
FPATAN Floating-point Partial ArcTANgent. Частичный арктангенс. Вычисляется функция Arctg(ST(1)/ST(0)). После вычисления функции происходит выталкивание из стека, после чего значение функции помещается в вершину стека
FSIN Floating-point calculation of SINe. Синус. ST(0) = SIN(ST(0)). Содержимое в ST(0) интерпретируется как угол в радианах.
FSINCOS Floating-point calculation of SINe and COSine. Синус и косинус. ST(0) = SIN(ST(0)) и ST(1) = COS(ST(0))
Команда Описание
F2XM1 Floating-point 2X minus 1 Вычисление 2X - 1. ST(0) = 2^ST(0) - 1.
FYL2X Floating-point compute Y*Log2(X) Вычисление Y*LOG2(X). Исходные операнды предварительно должны быть занесены в стек ST(0) = Y, ST(1) = X. Резкльтат помещается в ST(1). Затем происходит выталкивание из стека, и результат оказывается в вершине стека ST(0).
FYL2XP1 Floating-point compute Y*Log2(X Plus 1) Вычисление Y*LOG2(X + 1). Исходные операнды предварительно должны быть занесены в стек ST(0) = Y, ST(1) = X. Резкльтат помещается в ST(1). Затем происходит выталкивание из стека, и результат оказывается в вершине стека ST(0).

Обработка данных MMX-расширения может выполняться с использованием:

· циклической арифметики (wraparound arithmetic),

· арифметики с насыщением (saturation arithmetic).

Большинство команд технологии ММХ обрабатывают данные по правилам циклической арифметики, а некоторые команды задействуют арифметику с насыщением. Если команда задействует циклическую арифметику (другое название — арифметика с циклическим переносом) и результат операции выходит за двоичную разрядную сетку используемого типа данных, то «лишние» старшие биты результата отбрасываются.

Если команда использует арифметику с насыщением и результат операции превышает максимальное представимое значение, то в выходной операнд записывается это максимальное значение (происходит «насыщение»). Аналогично, если результат операции оказывается меньше нижней границы допустимого диапазона, то в выходной операнд записывается минимальное возможное значение.

В арифметике с насыщением ММХ-команды сложения, вычитания и упаковки данных могут обрабатывать числа со знаком или без знака. Данные со знаком и без знака имеют различный допустимый диапазон. Следовательно, если используется арифметика с насыщением, то при выходе результата операции за пределы допустимого диапазона в выходной операнд записываются различные значения, в зависимости от типа данных.

Синтаксис ММХ-команд. Большинство команд в мнемонике имеют суффикс, который определяет тип данных и используемую арифметику:

· US (Unsigned Saturation) — арифметика с насыщением, данные без знака или, по-другому, беззнаковое насыщение. Если команда использует арифметику с насыщением и результат операции превышает максимальное представимое значение, то в выходной операнд записывается это максимальное значение (происходит «насыщение»). Аналогично, если результат операции оказался меньше нижней границы допустимого диапазона, то в выходной операнд записывается минимально возможное значение.

· S или SS (Signed Saturation) — арифметика с насыщением для данных со знаком (или знаковое насыщение).

· Если в суффиксе нет ни символа S ни символов SS, то применяется циклическая арифметика (wraparound). Если в этом случае результат операции выходит за двоичную разрядную сетку используемого типа данных, то «лишние» старшие биты результата отбрасываются.

· b, w, d, q — эти буквы в конце имени указывают тип данных. Если в суффиксе есть две из этих букв, то первая соответствует входному операнду, вторая — выходному.

Синтаксис MMX команд:

· Мнемоника приемник, источник

· Мнемоника приемник, источник, маска

· Мнемоника приемник

После обзора команды будут рассмотрены подробно.

Категория Подкатегория Команды
Инициализация   EMMS
Передача данных Пересылки MOVD, MOVQ
Упаковка данных   PACKSSWB, PACKSSDW – числа со знаком PACKUSWB – числа без знака
Распаковка данных   PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ – старшая половина PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ – младшая половина
Арифметика Сложение Вычитание Умножение PADD, PADDS, PADDUS PSUB, PSUBS, PSUBUS PMULHW, PMULLW, PMADDWD
Логика   PAND, PANDN, POR, PXOR
Сдвиги   PSLLW, PSLLD, PSLLQ – логические влево PSRLW, PSRLD, PSRLQ – логические вправо PSRAW, PSRAD – арифметические (вправо)
Сравнения   PCMPEQB, PCMPEQW, PCMPEQD – на равенство PCMPGTB, PCMPGTW, PCMPGTD – на значение
Дополнительные Вычисления PAVGB, PAVDW - среднее значеие PSADBW – сумма разностей
Извлечения PEXTRW – извлечь слово PINSRW – вставить слово PMAXUB, PMAXSW – извлечь максимальное PMINUB, PMINSW – извлечь минимальное
Маска из знаков байтов PMOVMSKB



Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 579; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.