Assembler - язык неограниченных возможностей


Управление флагами


  • Команда:
  • 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

    Загружает флаги SF, ZF, AF, PF и CF из регистра АН значениями бит 7, 6, 4, 2 и 0 соответственно. Зарезервированные биты 1, 3 и 5 регистра флагов не изменяются.

  • Команда:
  • 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
    <


    Начало  Назад  Вперед