Разделы:


Best links:

Система команд sse-расширения

Команды сравнения позволяют определять соответствие операндов указанным условиям и, в зависимости от результата сравнения, устанавливают в нужном элементе операнда-приемника двоичные нули (если условие не выполняется) или двоичные единицы (если условие выполняется). Команды сравнения могут выполняться параллельно над упакованными операндами или скалярно над младшими двойными словами. Все команды имеют два операнда: в качестве входного операнда, или операнда-источника, могут выступать ХММ-регистр или ячейка памяти 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).

предыдущаяследующая