October 16 2017 22:54:29
Навигация
Авторизация
Логин

Пароль



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

Забыли пароль?
Запросите новый здесь.
Реализация операции распаковки
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕРеализация операции распаковки иллюстрируется на рис. 2.28 на примере выполнения команд PUNPCKHBW, PUNPCKLWD и PUNPCKLDQ.

img016

img017

Команда PSHUFW производит переупорядочивание слов, перемещая элементы (слова) операнда-источника из регистра или ячейки памяти mm/m64 в соответствующие позиции элементов операнда-приемника в регистре mm. Непосредственный операнд im8 указывает, какой из элементов операнда-источника помещается в определенной позиции операнда-приемника: биты b1-0 этого операнда задают номер элемента в операнде-источнике, который помещается на место слова W0 операнда-приемника, биты b3-2 - номер элемента, помещаемого на месте слова W1, биты b5-4 - номер элемента, помещаемого на месте слова W2, биты b7-6 - номер элемента, помещаемого на месте слова W3. Выполнение данной команды иллюстрируется на рис. 2.29.

Команда EMMS выполняет пересылку числа FFFFh в регистр тегов TW. При этом теги для всех регистров FPU и соответствующих им ММХ-регистров принимают значение 11, что соответствует их пустому состоянию. Таким образом, данная команда производит освобождение всех регистров FPU и соответственно ММХ-регистров. Данная команда используется после завершения процедуры обработки упакованных данных, чтобы освободить регистры для последующего выполнения операций блоком FPU. Если эта команда не будет выполнена, то регистры остаются заполненными упакованными данными (при ММХ-операциях теги принимают значение 00, что соответствует заполнению регистров), и обращение к ним вызовет исключение типа #MF («ошибка FPU»).

2.5.3. КОМАНДЫ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

Эта группа (табл. 2.42) содержит как команды, использующие принцип циклического переноса, так и команды, использующие принцип насыщения. Мнемокоды команд, при выполнении которых реализуется принцип циклического переноса, содержат только суффиксы В, W или D, определяющие тип обрабатываемых данных. При переполнении перенос не фиксируется, сохраняется только элемент формата. Мнемокоды команд, реализующих принцип насыщения, кроме суффиксов, определяющих тип данных, содержат суффикс S или US, указывающий вид насыщения - знаковое или беззнаковое.

Таблица 2.42 Команды арифметических операций

Синтаксис команды Операция
PADDB mm,mm/m64
PADDW mm,mm/m64
PADDD mm,mm/m64
mm(B) + mm/m64(B) ® mm(B) циклический перенос
mm(W) + mm/m64(W) ® mm(W) циклический перенос
mm(D) + mm/m64(D) ® mm(D) циклический перенос
PADDSB mm,mm/m64
PADDSW mm,mm/m64
mm(B) + mm/m64(B) ® mm(B) насыщение со знаком
mm(W) + mm/m64(W) ® mm(W) насыщение со знаком
PADDUSB mm,mm/m64
PADDUSW mm,mm/m64
mm(B) + mm/m64(B) ® mm(B) насыщение без знака
mm(W) + mm/m64(W) ® mm(W) насыщение без знака
PSUBB mm,mm/m64
PSUBW mm,mm/m64
PSUBD mm,mm/m64
mm(B) - mrn/m64(B) ® mm(B) циклический перенос
mm(W) - mm/m64(W) ® mm(W) циклический перенос
mm(D) - mm/m64(D) ® mm(D) циклический перенос
PSUBSB mm,mm/m64
PSUBSW mm,mm/m64
mm(B) - mm/m64(B) ® mm(B) насыщение со знаком
mm(W) - mm/m64(W) ® mm(W) насыщение со знаком
PSUBUSB mm,mm/m64 PSUBUSW mm,mm/m64 mm(B) - mm/m64(B) ® mm(B) насыщение без знака
mm(W) - mm/m64(W) ® mm(W) насыщение без знака
PMADDWD mm,mm/m64 mm(W) * mm/m64(W) ® temp(D)
temp(D3) + temp(D2) ® mm(D1)
temp(D2) + temp(D0) ® mm(D0)
PMULHW mm,mm/m64 Умножение слов со знаком с сохранением старшего слова результата
mm(W) * mm/m64(W) ® mm(W)
PMULLW mm,mm/m64 Умножение слов со знаком с сохранением младшего слова результата
mm(W) * mm/m64(W) ® mm(W)
PMULHUW mm,mm/m64 Умножение слов без знака с сохранением старшего слова результата
mm(W) * mm/m64(W) ® mm(W)
PAVGB mm,mm/m64 PAVGW mm,mm/m64 [mm(B) + mm/m64(B) + 1] / 2 ® mm(B) без знака
[mm(W) + mm/m64(W) + 1] / 2 ® mm(W) без знака
PSADBW mm,mm/m64 Abs[mm(B0) - mm/m64(B0)] +
Abs[mm(B1) - mm/m64(B1)] + ... +
Abs[mm(B7) - mm/m64(B7)] ® mm(W0)
0                                ® mm(W3-W1)
Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

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

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

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