Intel Pentium CPU Instruction Set Reference
TEST instruction - Logical Compare
Code |
Mnemonic |
Description |
A8 ib |
TEST AL, imm8 |
AND imm8 with AL; set SF, ZF, PF according to result |
A9 iw |
TEST AX, imm16 |
AND imm16 with AX; set SF, ZF, PF according to result |
A9 id |
TEST EAX, imm32 |
AND imm32 with EAX; set SF, ZF, PF according to result |
F6 /0 ib |
TEST r/m8, imm8 |
AND imm8 with r/m8; set SF, ZF, PF according to result |
F7 /0 iw |
TEST r/m16, imm16 |
AND imm16 with r/m16; set SF, ZF, PF according to result |
F7 /0 id |
TEST r/m32, imm32 |
AND imm32 with r/m32; set SF, ZF, PF according to result |
84 / r |
TEST r/m8, r8 |
AND r8 with r/m8; set SF, ZF, PF according to result |
85 / r |
TEST r/m16, r16 |
AND r16 with r/m16; set SF, ZF, PF according to result |
85 / r |
TEST r/m32, r32 |
AND r32 with r/m32; set SF, ZF, PF according to result |
Description
Computes the bit-wise logical AND of first operand (source 1 operand) and the second operand (source 2 operand) and sets the SF, ZF, and PF status flags according to the result. The result is then discarded.
Operands |
Bytes |
Clocks |
reg, reg |
2 |
1 |
UV |
mem, reg |
2 + d(0, 2) |
2 |
UV |
reg, mem |
2 + d(0, 2) |
2 |
UV |
reg, imm |
2 + i(1, 2) |
1 |
UV |
mem, imm |
2 + d(0, 2) + i(1, 2) |
2 |
UV ( not pairable if there is a displacement and immediate) |
acc, imm |
1 + i(1, 2) |
1 |
UV |
Flags
ID |
unaffected |
DF |
unaffected |
VIP |
unaffected |
IF |
unaffected |
VIF |
unaffected |
TF |
unaffected |
AC |
unaffected |
SF |
sets according to the result (see the "Operation" section above) |
VM |
unaffected |
ZF |
sets according to the result (see the "Operation" section above) |
RF |
unaffected |
AF |
undefined |
NT |
unaffected |
PF |
sets according to the result (see the "Operation" section above) |
IOPL |
unaffected |
CF |
cleared to 0 |
OF |
cleared to 0 |