Some assemblers may force the operand size to 16 when PUSHF is used and to 32 when PUSHFD is used. The PUSHF instruction is intended for use when the operand-size attribute is 16 and the PUSHFD instruction for when the operand-size attribute is 32. The PUSHF (push flags) and PUSHFD (push flags double) mnemonics reference the same opcode. See the section titled "EFLAGS Register" in Chapter 3 of the IA-32 Intel Architecture Software Developer's Manual, Volume 1, for information about the EFLAGS registers. (These instructions reverse the operation of the POPF/POPFD instructions.) When copying the entire EFLAGS register to the stack, the VM and RF flags (bits 16 and 17) are not copied instead, the values for these flags are cleared in the EFLAGS image stored on the stack. X86 Instruction Set Reference PUSHF/PUSHFD Push EFLAGS Register onto the Stack Opcodeĭecrements the stack pointer by 4 (if the current operand-size attribute is 32) and pushes the entire contents of the EFLAGS register onto the stack, or decrements the stack pointer by 2 (if the operand-size attribute is 16) and pushes the lower 16 bits of the EFLAGS register (that is, the FLAGS register) onto the stack.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |