PUSHFD
(PUSH eFlags Double word register onto stack)
Размещение расширенного регистра флагов в стеке
Схема команды: | pushfd |
Назначение: размещение в стеке содержимого регистра флагов eflags.
Алгоритм работы:
уменьшить значение указателя стека esp на 4;
записать в вершину стека двойное слово, представляющее собой содержимое регистра eflags.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Команды pushfd и popfd используются аналогично командам pushf и popf. Команда pushfd применяется для получения содержимого регистра флагов. Как известно, прямой доступ к регистру флагов невозможен, поэтому данная команда является одной из немногих команд, позволяющих получить доступ к регистру флагов как к содержимому обычного регистра. Обратное действие, то есть восстановление — возможно измененного слова — в регистр флагов, осуществляется командой popfd. Эта команда может использоваться в программах обработки прерываний или в других случаях, когда необходимо сохранить локальный контекст процесса вычисления.
.386 ;извлечь значение регистра eflags и изменить ;значение флага cf на обратное pushfd pop eax xor eax,01h push eax popfd |
См. также: уроки 7, 10, 14, 15, 16, 17 и команды , , , , , , , ,