Флажковые передачи

Опубликовано в Архитектура процессора Intel

Все команды флажковых передач являются безадресными, т.к. используют неявную адресацию операндов.

PUSHF (PUSH Flags register onto stack) — запись в стек содержимого регистра флагов.

Действия, выполняемые командой:

SP-2—>SP.

FLAGS—>[SS : SP]

Команда PUSHF производит декремент указателя стека па 2 и копирует регистр FLAGS в новую вершину стека.

Флажковые передачи

Значения флагов не меняются.

POPF (POP Flags register from the stack) — извлечение из стека в регистр флагов.

Действия, выполняемые командой:

[SS : SP] —> FLAGS;

SP+2B—> SP.

Команда POPF извлекает слово из вершины стека и сохраняет его значение в регистре флагов, далее производится инкремент указателя стека (SP) на два.

Меняются значения всех флагов (OF, DF, IF, TF, SF, AF, ZF, PF, CF)

LAHF (Load Flags into AH register) — загрузка флагов в регистр AH.

Действие, выполняемое командой:

FLAGS (7:0) АН.

Команда LAHF передает младший байт регистра флагов в регистр АН. При тюм в регистр АН загружаются все арифметические флаги, кроме OF, который размещается в старшем байте регистра флагов.

SAHF (Store AH into Flags) — сохранить содержимое АН в регистре флагов.

Действие, выполняемое командой:

АН FLAGS (7:0).

Команда SAIIF записывает биты регистра АН в регистр флагов. При этом значения битов 0, 2, 4, 6, 7 регистра АН становятся соответственно значениями флагов: переноса (CF), 4cthocth (PF), дополнительного переноса (AF), нуля (ZF) и знака (SF).