xor% ax,% ax, как указано в предыдущих комментариях, соответствует ax = ax xor ax. Это, по существу, устанавливает ax = 0. Кроме того, оно также влияет / модифицирует некоторые из EFLAGS, такие как OF, CF, SF, PF или ZF. В этом случае будут установлены флаги PF и ZF.
SF - указывает, привел ли результат последней операции к значению, старший бит которого установлен в 1.
PF - указывает, является ли количество установленных битов нечетным или четным в двоичном представлении результата последней операции.
ZF - устанавливается, если результат математической / логической операции равен нулю или сбрасывается иначе.
Пример показан ниже с использованием фрагментов GDB.
Инструкция: xor% ax,% ax
До "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
После "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