Арифметические команды.


Группа арифметических команд включает команды сложения, вычитания, умножения, деления, извлечения квадратного корня, вычисления максимального и минимального значения, вычисление обратных значений, а также команды сравнения.

При выполнении параллельных операций (мнемокоды с суффиксом ps) в качестве входного операнда (операнда-источника) выступают один из ХММ-регистров или 128-разрядная ячейка памяти. Выходным операндом (операндом-приемником) является один из ХММ-регистров.

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

Таблица 3.2

Операция Параллельная Скалярная
Сложение addps Addss
Вычитание subps Subss
Умножение mulps Mulss
Деление divps Divss
Извлечение корня sqrtps Sqrtss
Нахождение максимума maxps Maxss
Нахождение минимума minps Minss
Нахождение обратного значения (1/x) repps Repss
Нахождение обратного значения корня rsqrtps Rsqrtss

 

Мнемокоды арифметических команд представлены в табл. 3.2 и табл. 3.3.

Команды сравнения позволяют определять соответствие операндов указанным условиям и, в зависимости от результата сравнения, устанавливают в нужном элементе операнда-приемника двоичные нули (если условие не выполняется) или двоичные единицы (если условие выполняется). Команды сравнения могут выполняться параллельно над упакованными операндами или скалярно над младшими двойными словами. Все команды имеют два операнда: в качестве входного операнда, или операнда-источника, могут выступать ХММ-регистр или ячейка памяти 128-разрядная для параллельных команд и 32-разрядная для скалярных. Выходным операндом, или операндом-приемником, может быть только один из ХММ-регистров, в котором задействованы либо 128 бит (параллельные команды), либо младшие 32 бита (скалярные команды).

Таблица 3.3

Операция Параллельная Скалярная
Сравнение – условие «равно» cmpeqps cmpeqss
Сравнение – условие «меньше» cmpltps cmpltss
Сравнение – условие «меньше или равно» cmpleps cmpless
Сравнение – условие «неупорядоченности» cmpunordps cmpunordss
Сравнение – условие «не равно» cmpneqps cmpneqss
Сравнение – условие «не меньше» cmpnltps cmpnltss
Сравнение – условие «не меньше или равно» cmpnleps cmpnless
Сравнение – условие «упорядоченности» cmpordps cmpordss
Скалярное сравнение с установкой eflags - comiss
Неупорядоченное сравнение с установкой eflags - ucomiss

 

Две последние команды в табл 3.3 comiss и ucomiss имеют два операнда и выполняют скалярное сравнение младших 32-разрядных операндов. Особенностью этих команд является то, что содержимое обоих операндов после выполнения операции сравнения остается неизменным, а в регистре флагов EFLAGS процессора определенным образом устанавливаются флаги ZF, PF и CF, а флаги OF, SF и AF сбрасываются в 0. В качестве входных операндов обеих команд могут выступать ХММ-регистры или 32-разрядные переменные в памяти, выходными операндами могут быть только ХММ-регистры. Команды ucomiss и comiss отличаются тем, что генерируют исключительные ситуации для различных форматов не-чисел (NAN).

Логические команды

Все логические команды являются параллельными и позволяют выполнять операции логического И, ИЛИ, И-НЕ, исключающего ИЛИ над отдельными парами битов операндов. Каждая команда имеет два операнда: в качестве входного операнда (источника) могут выступать ХММ-регистр или 128-разрядная ячейка памяти, а в качестве выходного (приемника) - ХММ-регистр. После выполнения команды содержимое операнда-источника не изменяется, а результат помещается в операнд-приемник

Команда andps - параллельная операция логического И над парами битов операнда-источника и операнда-приемника.

Команда andnps - параллельная операция логического И-НЕ над парами битов операнда-источника и операнда- приемника.

Команда orps - параллельная операция логического ИЛИ над парами битов операнда-источника и операнда-приемника.

Команда xorps - параллельная операция логического исключающего ИЛИ над парами битов операнда-источника и операнда-приемника.



Дата добавления: 2018-11-26; просмотров: 689;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.