- •Классификация команд процессора Intel.
- •Команды пересылки данных: mov, cmoVcc, xchg, bswap, in, out.
- •Команды пересылки данных: push, pop, pusha, pushad, popa, popad.
- •Команды двоичной арифметики: add, adc, xadd, sub, sbb, inc, dec, neg.
- •Команды двоичной арифметики: imul, mul, idiv, div, cmp, cmpxchg, cmpxchg8b.
- •Команды десятичной арифметики: daa, das, aaa, aas, aam, aad.
- •Команды логических операций: and, or, xor, not, test.
- •Команды сдвиговых операций: sar, sal, shr, shl, shrd, shld.
- •Команды операций над битами и байтами: bt, bts, btr, btc, bsf, bsr, seTcc.
- •Команды сдвиговых операций: ror, rol, rcr, rcl.
- •Команды передачи управления: jmp, Jcc, jcxz, jecxz.
- •Команды передачи управления: loop, loope, loopz, loopne, loopnz.
- •Команды передачи управления: call, ret, retn, retf.
- •Команды передачи управления: int, iret, iretd, int3, into.
- •Префиксы повторения для строковых операций: rep, repe, repne, repz, repnz.
- •Строковые операции: movs, movsb, movsw, movsd, cmps, cmpsb, cmpsw, cmpsd.
- •Строковые операции: stos, stosb, stosw, stosd, ins, insb, insw, insd, outs, outsb, outsw, outsd.
- •Строковые операции: scas, scasb, scasw, scasd, lods, lodsb, lodsw, lodsd.
- •Команды управления флагами: stc, clc, cmc, std, cld, lahf, sahf.
- •Команды управления флагами: pushf, pushfd, popf, popfd, cli, sti, salc.
- •Директивы задания набора допустимых команд. Глобальные объявления.
- •Условное ассемблирование. Выражения. Операторы, используемые в выражениях.
- •Ввод данных с клавиатуры и вывод на экран.
Команды управления флагами: stc, clc, cmc, std, cld, lahf, sahf.
Команда: |
STC |
Назначение: |
Установить флаг переноса |
Процессор: |
8086 |
Устанавливает флаг CF в 1.
Команда: |
CLC |
Назначение: |
Сбросить флаг переноса |
Процессор: |
8086 |
Сбрасывает флаг CF в 0.
Команда: |
CMC |
Назначение: |
Инвертировать флаг переноса |
Процессор: |
8086 |
Инвертирует флаг СF.
Команда: |
STD |
Назначение: |
Установить флаг направления |
Процессор: |
8086 |
Устанавливает флаг DF в 1, так что при последующих строковых операциях регистры DI и SI будут уменьшаться.
Команда: |
CLD |
Назначение: |
Сбросить флаг направления |
Процессор: |
8086 |
Сбрасывает флаг DF в 0, так что при последующих строковых операциях регистры DI и SI будут увеличиваться.
Команда: |
LAHF |
Назначение: |
Загрузить флаги состояния в АН |
Процессор: |
8086 |
Копирует младший байт регистра FLAGS в АН, включая флаги SF (бит 7), ZF (бит 6), AF (бит 4), PF (бит 2) и CF (бит 0). Бит 1 устанавливается в 1, биты 3 и 5 — в 0.
Команда: |
SAHF |
Назначение: |
Загрузить флаги состояния из АН |
Процессор: |
8086 |
Команды управления флагами: pushf, pushfd, popf, popfd, cli, sti, salc.
Команда: |
PUSHF |
Назначение: |
Поместить FLAGS в стек |
Процессор: |
8086 |
Команда: |
PUSHFD |
Назначение: |
Поместить ЕFLAGS в стек |
Процессор: |
80386 |
Эти команды копируют содержание регистра FLAGS или EFLAGS в стек (уменьшая SP или ESP на 2 или 4 соответственно). При копировании регистра EFLAGS флаги VM и RF (биты 16 и 17) не копируются, соответствующие биты в двойном слове, помещенном в стек, обнуляются.
Команда: |
POPF |
Назначение: |
Загрузить FLAGS из стека |
Процессор: |
8086 |
Команда: |
POPFD |
Назначение: |
Загрузить EFLAGS из стека |
Процессор: |
80386 |
Считывает из вершины стека слово (POPF) или двойное слово (POPFD) и помещает в регистр FLAGS или EFLAGS. Эффект этих команд зависит от режима, в котором выполняется программа: в реальном режиме и в защищенном режиме с уровнем привилегий 0 модифицируются все незарезервированные флаги в EFLAGS, кроме VIP, VIF и VM. VIP и VIF обнуляются, и VM не изменяется. В защищенном режиме c уровнем привилегий, большим нуля, но меньшим или равным IOPL, модифицируются все флаги, кроме VIP, VIF, VM и IOPL. В режиме V86 не модифицируются флаги VIF, VIP, VM, IOPL и RF.
Команда: |
CLI |
Назначение: |
Запретить прерывания |
Процессор: |
8086 |
Сбрасывает флаг IF в 0. После выполнения этой команды процессор игнорирует все прерывания от внешних устройств (кроме NMI). В защищенном режиме эта команда, так же как и все другие команды, модифицирующие флаг IF (POPF или IRET), выполняется, только если программе даны соответствующие привилегии (CPL < IOPL).
Команда: |
STI |
Назначение: |
Разрешить прерывания |
Процессор: |
8086 |
Устанавливает флаг IF в 1, отменяя тем самым действие команды CLI.
Команда: |
SALC |
Назначение: |
Установить AL в соответствии с CF |
Процессор: |
8086 |
Устанавливает AL в 0FFh, если флаг CF = 1, и сбрасывает в 00h, если CF = 0. Это недокументированная команда с кодом 0D6h, присутствующая во всех процессорах Intel и совместимых с ними (начиная с 8086). В документации на Pentium Pro эта команда упоминается в общем списке команд, но ее действие не описывается. Действие SALC аналогично SBB AL,AL, но SALC не изменяет значений флагов.
