- •Команды общего назначения
- •1.1.1.Команды ввода-вывода
- •1.1.2.Инструкции работы со стеком
- •1.1.3.Арифметико-логические инструкции
- •1.1.4.Цепочечные операции
- •1.1.5.Команды управления
- •1.1.6.Команды поддержки языков высокого уровня
- •1.1.7.Команды прерываний
- •1.1.8.Команды синхронизации процессора
- •1.1.9.Команды обработки цепочки бит
- •Синтаксис ммх-команд
- •1.1.10.Классификация команд
1.1.9.Команды обработки цепочки бит
Команда |
Описание |
BSFприемник, источник |
Bit Scan Forward – побитовое сканирование вперед. Проверка наличия битов 1 в источнике Номер первого бита, находящегося в состоянии 1, помещается в приемник, флажок ZF сбрасывается в 0. Если источник содержит 0, то флаг ZF=1, а содержимое приемника не определено. |
BSR приемник, источник |
Bit Scan Revers – побитовое сканирование назад. Аналогична BSF. Разница в направлении просмотра.. |
BT источник, индекс |
Bit Test – проверка битов. Извлечение бита (с номером индекс) из источника, помещение в флаг CF.. |
BTC источник, индекс |
Bit Test and Complement – проверка битов и инверсия. Извлечение бита (с номером индекс) из источника, помещение в флаг CF, инверсия. |
BTR источник, индекс |
Bit Test and Reset – проверка битов и сброс в 0. Извлечение бита (с номером индекс) из источника, помещение в флаг CF, сброс в 0. |
BTS источник, индекс |
Bit Test and Set – проверка битов и установка в 1. Извлечение бита (с номером индекс) из источника, помещение в флаг CF, установка в 1. |
Вспомогательные команды
Команда |
Описание |
FABS |
Floating-point ABSolute value Нахождение абсолютного значения. ST(0) = ABS(ST(0)). |
FCHS |
Floating-point CHange Sign Изменение знака ST(0) = -ST(0). |
FSQRT |
Floating-point calculation of SQuare Root Извлечь квадратный корень из ST(0) и поместить обратно. Исходный операнд предварительно должен быть занесен в стек ST(0) = X. |
FSCALE |
Floating-point SCALE. Масштабирование. Умножение X на 2 в степени Y. Исходные операнды предварительно должны быть занесены в стек ST(0) = X, ST(1) = Y. ST(0) = ST(0) * 2^ST(1). |
FPREM |
Floating-point Partial REMinder Нахождение частичного остатка от деления ST(0) на ST(1). |
FPREM1 |
Floating-point Partial REMinder IEEE-754 Нахождение частичного остатка от деления ST(0) на ST(1) (в стандарте IEEE). |
FRNDINT |
Floating-point RouND INTeger Округление до ближайшего целого числа, находящегося в ST(0). ST(0) = int(ST(0)). |
Синтаксис ммх-команд
Большинство команд в мнемонике имеют суффикс, который определяет тип данных и используемую арифметику:
US (Unsigned Saturation) — арифметика с насыщением, данные без знака или, по-другому, беззнаковое насыщение. Если команда использует арифметику с насыщением и результат операции превышает максимальное представимое значение, то в выходной операнд записывается это максимальное значение (происходит «насыщение»). Аналогично, если результат операции оказался меньше нижней границы допустимого диапазона, то в выходной операнд записывается минимально возможное значение.
S или SS (Signed Saturation) — арифметика с насыщением для данных со знаком (или знаковое насыщение).
Если в суффиксе нет ни символа S ни символов SS, то применяется циклическая арифметика (wraparound). Если в этом случае результат операции выходит за двоичную разрядную сетку используемого типа данных, то «лишние» старшие биты результата отбрасываются.
b, w, d, q — эти буквы в конце имени указывают тип данных. Если в суффиксе есть две из этих букв, то первая соответствует входному операнду, вторая — выходному.
Синтаксис MMX команд:
Мнемоника приемник, источник
Мнемоника приемник, источник, маска
Мнемоника приемник