(PUSH eFlags Double word register onto stack)
Размещение расширенного регистра флагов в стеке
Назначение: размещение в стеке содержимого регистра флагов 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 и команды pop, popa, popad, popf, popfd, push, pusha, pushad, pushf