Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Программирование -> Assembler -> Оптимизация программ на ассемблере.


Команды 3DNow! ( начиная с K6-2 ).

Инструкции технологии 3DNow! предназначены для ускорения обработки 3D в приложениях. Процессор может выполнять по две инструкции технологии 3DNow! за такт. Так как каждая инструкция технологии 3DNow! работает с упакованными данными (два 32-битных элемента 64-битных данных), то за такт вычисляются четыре операции с плавающей запятой. Все инструкции технологии 3DNow! работают с теми же регистрами, что и инструкции технологии MMX. Команды 3DNow! имеют следующий синтаксис:

	instruction [dest, src] 

Здесь instruction - имя команды, dest обозначает выходной операнд, src - входной операнд. Система команд технологии 3DNow! содержит 21 инструкцию (обозначения: mm - MMX-регистр; m8, m64 - память объема 8 и 64 бит соответственно):

FEMMSкоманда входа/выхода в/из режима MMX или 3DNow! .
PAVGUSB mm, mm/m64команда усреднения упакованных беззнаковых 8-битных данных. Сначала вычисляется побайтовая сумма входящего и выходящего операндов (результат 9-битный, поэтому переполнения не происходит), а потом результат увеличивается на единицу и делится пополам. Полученные значения заносятся в выходной операнд.
PF2ID mm, mm/m64команда преобразования входного упакованного операнда с плавающей запятой в выходной упакованный операнд с 32-разрядными целыми числами.
PFACC mm, mm/m64команда накопления данных с плавающей запятой. Данное накопление выражается следующими формулами:
mm(dest)[31:0] = mm(dest)[31:0] + mm(dest)[63:32]
mm(dest)[63:32] = mm/m64(src)[31:0] + mm/m64(src)[63:32]
PFADD mm, mm/m64команда сложения упакованных данных с плавающей запятой.
PFCMPEQ mm, mm/m64команда сравнения РАВНО упакованных данных с плавающей запятой. В случае успеха все биты выходного операнда заполняются единицами, а в случае неудачи - нулями.
PFCMPGE mm, mm/m64команда сравнения БОЛЬШЕ ИЛИ РАВНО упакованных данных с плавающей запятой. В случае успеха все биты выходного операнда заполняются единицами, а в случае неудачи - нулями.
PFCMPGT mm, mm/m64команда сравнения БОЛЬШЕ упакованных данных с плавающей запятой. В случае успеха все биты выходного операнда заполняются единицами, а в случае неудачи - нулями.
PFMAX mm, mm/m64команда нахождения максимума упакованных данных с плавающей запятой. При этом максимальное значение заносится в младший элемент выходного операнда, а минимальное значение - в старший элемент выходного операнда.
PFMIN mm, mm/m64команда нахождения минимума упакованных данных с плавающей запятой. При этом минимальное значение заносится в младший элемент выходного операнда, а максимальное значение - в старший элемент выходного операнда.
PFMUL mm, mm/m64команда умножения упакованных данных с плавающей запятой.
PFRCP mm, mm/m64команда приближенного вычисления обратного значения данных с плавающей запятой. В младший и старший элементы выходного операнда заносится приближенное обратное значение (14 бит точности вместо 24 бит) младшего элемента входного операнда.
PFRCPIT1 mm, mm/m64команда уточнения упакованных данных с плавающей запятой. Вычисляется первый промежуточный шаг итерации Ньютона.
PFRCPIT2 mm, mm/m64команда уточнения упакованных данных с плавающей запятой. Вычисляется второй и последний промежуточный шаг итерации Ньютона. Операции PFRCPIT1(PFRSQIT1) и PFRCPIT2 используются после команд PFRCP(PFSQRT) для получения более точных результатов (24 бит точности).
PFRSQIT1 mm, mm/m64команда уточнения значения квадратного корня упакованных данных с плавающей запятой (1 итерационный шаг). Последний итерационный шаг - PFRCPIT2 .
PFRSQRT mm, mm/m64команда вычисления приближенного значения квадратного корня данных с плавающей запятой. В младший и старший элементы выходного операнда заносится приближенное значение (15 бит точности вместо 24 бит) корня квадратного из младшего элемента входного операнда.
PFSUB mm, mm/m64команда вычитания упакованных данных с плавающей запятой.
PFSUBR mm, mm/m64команда обратного вычитания упакованных данных с плавающей запятой:
mm(dest)[31:0] = mm/m64(src)[31:0] - mm(dest)[31:0]
mm(dest)[63:32] = mm/m64(src)[63:32] - mm(dest)[63:32]
PI2FD mm, mm/m64команда преобразования входного упакованного операнда с 32-разрядными целыми числами в выходной упакованный операнд с плавающей запятой.
PMULHRW mm, mm/m64команда умножения упакованных данных с 16-битными знаковыми целыми числами с последующим округлением и сохранением старших 16 бит произведений.
hrefETCH(W) m8выборка с упреждением в кэш данных 1-го уровня.

Назад | Дальше


 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100