xor% ax,% ax, as indicated in previous comments, corresponds to ax = ax xor ax. This is essentially set ax = 0. In addition, it also affects / modifies some of the EFLAGS, such as OF, CF, SF, PF or ZF. In this case, the PF and ZF flags will be set.
SF - indicates whether the result of the last operation led to a value whose most significant bit is set to 1.
PF - Indicates whether the number of bits is given by an odd or even binary representation of the result of the last operation.
ZF - set if the result of the mathematical / logical operation is zero or reset otherwise.
An example is shown below using fragments of GDB.
Instruction: xor% ax,% ax
To "xor"
(gdb) info registers eax 0xaa55 43605 ecx 0x0 0 edx 0x80 128 ebx 0x0 0 esp 0x6f20 0x6f20 ebp 0x0 0x0 esi 0x0 0 edi 0x0 0 eip 0x7c02 0x7c02 eflags 0x2 [ ] cs 0x0 0 ss 0x0 0 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0
After "xor"
(gdb) info registers eax 0x0 0 --------------------> AX = 0 ecx 0x0 0 edx 0x80 128 ebx 0x0 0 esp 0x6f20 0x6f20 ebp 0x0 0x0 esi 0x0 0 edi 0x0 0 eip 0x7c04 0x7c04 eflags 0x46 [ PF ZF ] --------------------> Flags Set cs 0x0 0 ss 0x0 0 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0
source share