Code | Mnemonic | Description |
---|---|---|
0F 00 /4 | VERR r/m16 | Set ZF=1 if segment specified with r/m16 can be read |
0F 00 /5 | VERW r/m16 | Set ZF=1 if segment specified with r/m16 can be written |
Verifies whether the code or data segment specified with the source operand is readable (VERR) or writable (VERW) from the current privilege level (CPL). The source operand is a 16-bit register or a memory location that contains the segment selector for the segment to be verified. If the segment is accessible and readable (VERR) or writable (VERW), the ZF flag is set; otherwise, the ZF flag is cleared. Code segments are never verified as writable. This check cannot be performed on system segments.
To set the ZF flag, the following conditions must be met:
The validation performed is the same as is performed when a segment selector is loaded into the DS, ES, FS, or GS register, and the indicated access (read or write) is performed. The segment selector's value cannot result in a protection exception, enabling the software to anticipate possible segment access problems.
Operands | Bytes | Clocks | |
---|---|---|---|
r16 | 3 | 7 | NP |
mem16 | 3 + d(0, 2) | 7 | NP |
ID | unaffected | DF | unaffected |
---|---|---|---|
VIP | unaffected | IF | unaffected |
VIF | unaffected | TF | unaffected |
AC | unaffected | SF | unaffected |
VM | unaffected | ZF | sets to 1 if the segment is accessible and readable (VERR) or writable (VERW); otherwise, it is cleared to 0 |
RF | unaffected | AF | unaffected |
NT | unaffected | PF | unaffected |
IOPL | unaffected | CF | unaffected |
OF | unaffected |