Conditional operations
Name Description Code Operation operands operand size
set Set byte if true set<cond> dest dest = 1 if <cond> is true
dest = 0 if <cond> is false
reg
mem
byte
salc Set AL if carry salc al = 0xFF if CF=1
al = 0x00 if CF=0
   
cmov Conditional move cmov<cond> dest,source dest = source
if <cond> is true

reg, reg
reg, mem

word, word
dword,dword
cmpxchg Compare and exchange cmpxchg dest,source dest = source if dest=al/ax/eax
al/ax/eax = dest otherwise
reg,reg
mem,reg
byte,byte
word,word
dword,dword
cmpxchg8b Compare and exchange 8 bytes cmpxchg8b dest dest = ecx:ebx if dest=edx:eax
edx:eax = dest otherwise
mem qword

Conditions

Mnemonic Condition tested Description
o OF = 1 overflow
no OF = 0 not overflow
c
b
nae
CF = 1
carry
below
not above nor equal
nc
ae
nb
CF = 0
not carry
above or equal
not below
e
z
ZF = 1
equal
zero
ne
nz
ZF = 0
not equal
not zero
be
na
CF or ZF = 1
below or equal
not above
a
nbe
CF or ZF = 0
above
not below nor equal
s SF = 1 sign
ns SF = 0 not sign
p
pe
PF = 1
parity
parity even
np
po
PF = 0
not parity
parity odd
l
nge
SF xor OF = 1
less
not greater nor equal
ge
nl
SF xor OF = 0
greater or equal
not less
le
ng
(SF xor OF) or ZF = 1
less or equal
not greater
g
nle
(SF xor OF) or ZF = 0
greater
not less nor equal