-
Notifications
You must be signed in to change notification settings - Fork 100
STAC
STAC — Set AC Flag in EFLAGS Register
| Opcode/ Instruction | Op / En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
| NP 0F 01 CB STAC | ZO | V/V | SMAP | Set the AC flag in the EFLAGS register. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| ZO | N/A | N/A | N/A | N/A |
Sets the AC flag bit in EFLAGS register. This may enable alignment checking of user-mode data accesses. This allows explicit supervisor-mode data accesses to user-mode pages even if the SMAP bit is set in the CR4 register.
This instruction's operation is the same in non-64-bit modes and 64-bit mode. Attempts to execute STAC when CPL > 0 cause #UD.
EFLAGS.AC ← 1;AC set. Other flags are unaffected.
#UD If the LOCK prefix is used. If the CPL > 0. If CPUID.07H.00H:EBX.SMAP[20] = 0.
#UD If the LOCK prefix is used. If CPUID.07H.00H:EBX.SMAP[20] = 0.
#UD The STAC instruction is not recognized in virtual-8086 mode.
#UD If the LOCK prefix is used. If the CPL > 0. If CPUID.07H.00H:EBX.SMAP[20] = 0.
#UD If the LOCK prefix is used. If the CPL > 0. If CPUID.07H.00H:EBX.SMAP[20] = 0.
Source: Intel® 64 and IA-32 Architectures Software Developer's Manual, Combined Volumes (Order Number 325462-091US, March 2026)
Generated: 7-6-2026