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

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


Команды Enhanced 3DNow! ( начиная с Athlon )

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

	instruction [dest, src] 

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

PF2IW mm, mm/m64команда преобразования с насыщением входного упакованного операнда с плавающей запятой в выходной упакованный операнд с 16-разрядными знаковыми целыми числами. При этом запись осуществляется в младшие 16 бит 32-разрядных элементов выходного операнда.
PFNACC 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]
PFPNACC mmreg1, mmreg2команда накопления/денакопления данных с плавающей запятой. Данное накопление/денакопление выражается следующими формулами:
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]
PI2FW mm, mm/m64команда преобразования входного упакованного операнда с 16-разрядными знаковыми целыми числами в выходной упакованный операнд с плавающей запятой. При этом считывание осуществляется из младших 16 бит 32-разрядных элементов входного операнда.
PSWAPD mm, mm/m64команда перестановки младшего и старшего элементов входного операнда местами и записи результата в выходной операнд.
MASKMOVQ mm, mmкоманда сохранения выбранных с помощью маски, заданной в старших битах слов второго MMX-регистра, байтов из первого MMX-регистра в памяти по адресу [EDI].
MOVNTQ m64, mmкоманда прямой записи в память содержимого MMX-регистра без кэширования.
PAVGB mm, mm/m64команда усреднения упакованных беззнаковых 8-битных данных. Сначала вычисляется побайтовая сумма входящего и выходящего операндов (результат 9-битный, поэтому переполнения не происходит), а потом результат увеличивается на единицу и делится пополам. Полученные значения заносятся в выходной операнд. Команда идентична команде PAVGUSB mm, mm/m64 .
PAVGW mm, mm/m64команда усреднения упакованных беззнаковых 16-битных данных. Сначала вычисляется побайтовая сумма входящего и выходящего операндов (результат 17-битный, поэтому переполнения не происходит), а потом результат увеличивается на единицу и делится пополам. Полученные значения заносятся в выходной операнд.
PEXTRW ir32, mm, immкоманда извлечения слова из MMX-регистра, определенного непосредственным операндом, в целочисленный регистр.
PINSRW mm, ir32, immкоманда вставки слова из целочисленного регистра в одно из четырех слов MMX-регистра, определенного непосредственным операндом.
PMAXSW mm, mm/m64команда нахождения максимумов из пар соответствующих знаковых слов входного и выходного операндов с упакованными данными.
PMAXUB mm, mm/m64команда нахождения максимумов из пар соответствующих беззнаковых байт входного и выходного операндов с упакованными данными.
PMINSW mm, mm/m64команда нахождения минимумов из пар соответствующих знаковых слов входного и выходного операндов с упакованными данными.
PMINUB mm, mm/m64команда нахождения минимумов из пар соответствующих беззнаковых байт входного и выходного операндов с упакованными данными.
PMOVMSKB ir32, mmкоманда копирования маски, составленной из знаков упакованных байтовых чисел MMX-регистра, в целочисленный регистр с заполнением старших 24 бит нулями.
PMULHUW mm, mm/m64команда попарно перемножает 16-разрядные слова без знака входного и выходного операндов, что дает четыре 32-разрядных произведения. Старшие разряды произведений записываются в 16-разрядные слова выходного операнда. Младшие разряды произведений теряются.
hrefETCHNTA m8команда копирования данных в процессор с минимальным заполнением уровней L1 и L2 кэша (NTA). m8 задает адрес данных в памяти.
hrefETCHT0 m8команда копирования данных в процессор с заполнением всех уровней кэша (T0). m8 задает адрес данных в памяти.
hrefETCHT1 m8команда копирования данных в процессор с заполнением всех уровней кэша за исключением 0-го уровня (T1). m8 задает адрес данных в памяти.
hrefETCHT2 m8команда копирования данных в процессор с заполнением всех уровней кэша за исключением 0-го и 1-го уровней (T2). m8 задает адрес данных в памяти.
PSADBW mm, mm/m64команда вычисления абсолютной суммы отклонения между упакованными словами входного и выходного операндов. Старшие 3 слова выходного операнда заполняются нулями, а младшее слово вычисляется по следующей формуле:
mm(dest)[15:0] = abs(mm(dest)[7:0] - mm/m64(src)[7:0]) + abs(mm(dest)[15:8] - mm/m64(src)[15:8]) + abs(mm(dest)[23:16] - mm/m64(src)[23:16]) + abs(mm(dest)[31:24] - mm/m64(src)[31:24]) + abs(mm(dest)[39:32] - mm/m64(src)[39:32]) + abs(mm(dest)[47:40] - mm/m64(src)[47:40]) + abs(mm(dest)[55:48] - mm/m64(src)[55:48]) + abs(mm(dest)[63:56] - mm/m64(src)[63:56])
PSHUFW mm, mm/m64, imm8команда перестановки слов, заданных во входном операнде. Перестановка осуществляется с помощью задаваемой маски (непосредственный операнд). Всего возможны 24 перестановки. Результат записывается в выходной операнд.
SFENCEкоманда принудительного сохранения данных.

Назад


 

 
Интересное в сети
 
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 обязательна. Карта сайта.