- •Команды общего назначения
- •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.10.Классификация команд
После обзора команды будут рассмотрены подробно.
Категория |
Подкатегория |
Команды |
Инициализация |
|
EMMS |
Передача данных |
Пересылки |
MOVD, MOVQ |
Упаковка данных |
|
PACKSSWB, PACKSSDW – числа со знаком PACKUSWB – числа без знака |
Распаковка данных |
|
PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ – старшая половина PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ – младшая половина |
Арифметика |
Сложение Вычитание Умножение |
PADD, PADDS, PADDUS PSUB, PSUBS, PSUBUS PMULHW, PMULLW, PMADDWD |
Логика |
|
PAND, PANDN, POR, PXOR |
Сдвиги |
|
PSLLW, PSLLD, PSLLQ – логические влево PSRLW, PSRLD, PSRLQ – логические вправо PSRAW, PSRAD – арифметические (вправо) |
Сравнения |
|
PCMPEQB, PCMPEQW, PCMPEQD – на равенство PCMPGTB, PCMPGTW, PCMPGTD – на значение |
Дополнительные |
Вычисления |
PAVGB, PAVDW - среднее значеие PSADBW – сумма разностей |
Извлечения |
PEXTRW – извлечь слово PINSRW – вставить слово PMAXUB, PMAXSW – извлечь максимальное PMINUB, PMINSW – извлечь минимальное |
|
Маска из знаков байтов |
PMOVMSKB |
названия регистров - AL, АН, BL, ВН, CL, СН, DL, ОН, АХ, ЕАХ, ВХ, ЕВХ, СХ, ЕСХ, DX, EDX, ВР, EBP, SP, ESP, DI, EDI, SI, ESI, CS, DS, ES, FS, GS, SS, CRO, CR2, CR3, DRO, DRl, DR2, DR3, DR6, DR7.
операторы - BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, FWORD, QWORD, TBYTE, REAL4, REALS, REAL10, NEAR16, NEAR32, FAR16, FAR32, AND, NOT, HIGH, LOW, HIGHWORD, LOWWORD, OFFSET, SEG, LROFFSET, TYPE, THIS, PTR, WIDTH, MASK, SIZE, SIZEOF, LENGTH, LENGTHOF, ST, SHORT, TYPE, OPATTR, MOD, NEAR, FAR, OR, XOR, EQ, NE, LT, LE, GT, GE, SHR, SHL и др..
Названия команд (КОП) ассемблера, префиксов.
Регистровый операнд. Это просто имя регистра. В программе на ассемблере можно использовать имена всех регистров общего назначения и большинства системных регистров:
32-разрядные регистры ЕАХ, ЕВХ, ЕСХ, EDX, ESI, EDI, ESP, EBP;
16-разрядные регистры АХ, ВХ, СХ, DX, SI, DI, SP, ВР;
8-разрядные регистры АН, AL, BH, BL, CH, CL, DH, DL;
сегментные регистры CS, DS, SS, ES, FS, GS;
системные регистры CRO, CR2, CR3, CR4, DRO, DR1, DR2, DR3, DR6, DR7.
Синтаксис |
|
выражение SHL счетчик
|
Сдвигает выражение влево на число бит, заданных счетчиком. Отрицательное значение счетчика задает сдвиг в противоположном направлении. |
выражение SHR счетчик
|
Сдвигает выражение вправо на число бит, заданных счетчиком. Отрицательное значение счетчика задает сдвиг в противоположном направлении. |
Указатель на память двух типов:
ближнего типа (NEAR)— 32-разрядный логический адрес, представляющий собой относительное смещение в байтах от начала сегмента. Эти указатели могут также использоваться в сплошной (плоской) модели памяти, где сегментные составляющие одинаковы;
дальнего типа (FAR) — 48-разрядный логический адрес, состоящий из двух частей: 16-разрядной сегментной части — селектора, и 32-разрядного смещения
Сегмент (seg) — адрес начала сегмента, содержащего переменную;
Смещение (offset) в байтах от начала сегмента с переменной;
Тип (type) — определяет количество памяти, выделяемой переменной в соответствии с директивой объявления переменной.
имя BYTE значение ; беззнаковый байт (1 байт), синоним DB.
имя SBYTE значение ; знаковый байт (1 байт).
имя WORD значение ; беззнаковое слово (2 байта), синоним DD.
имя SWORD значение ; знаковое слово (2 байта).
имя DWORD значение ; беззнаковое двойное слово (4 байта).
имя SDWORD значение ; знаковое двойное слово (4 байта).
имя FWORD значение ; беззнаковое слово (6 байт) , синоним DF.
имя QWORD значение ; беззнаковое квадрослово (8 байт) , синоним DQ.
имя SQWORD значение ; знаковое квадрослово (8 байт).
имя OWORD значение ; беззнаковое октослово (16 байт).
имя REAL4 значение ; переменная с ПТ с одинарной точностью (4 байта).
имя REAL8 значение ; переменная с ПТ с двойной точностью (8 байт).
имя REAL10 значение ; переменная с ПТ с повышенной точностью (10 байт).
имя TBYTE значение ; переменная с ПТ с повышенной точностью (10 байт) , синоним DT