Table des matières

CMP - CMPS - CMPSB - CMPSD - CMPSW - CMPSCHG

CMP - Compare

Subtracts source from destination and updates the flags but does not save result. Flags can subsequently be checked for conditions.

Usage:

	CMP	dest,src

Modifies flags:

CF PF AF ZF SF OF

Clocks Size
Operands 808x 286 386 486 Bytes
reg,reg 3 2 2 1 2
mem,reg 9+EA 7 5 2 2-4 (W88=13+EA)
reg,mem 9+EA 6 6 2 2-4 (W88=13+EA)
reg,immed 4 3 2 1 3-4
mem,immed 10+EA 6 5 2 3-6 (W88=14+EA)
accum,immed 4 3 2 1 2-3

CMPSx - Compare String (Byte,Word, Dword)

Subtracts destination value from source without saving results. Updates flags based on the subtraction and the index registers (E)SI and (E)DI are incremented or decremented depending on the state of the Direction Flag. CMPSB inc/decrements the index registers by 1, CMPSW inc/decrements by 2, while CMPSD increments or decrements by 4. The REP prefixes can be used to process entire data items.

Usage:

	CMPS	dest,src
	CMPSB	dest,src
	CMPSW	dest,src
	CMPSD	dest,src ; 386+ only

Modifies flags:

CF PF AF ZF SF OF

Clocks Size
Operands 808x 286 386 486 Bytes
dest,src 22 8 10 8 2 (W88=30)

CMPSXCHG - Compare and Exchange

Compares the accumulator (8-32 bits) with “dest”. If equal the “dest” is loaded with “src”, otherwise the accumulator is loaded with “dest”.

Usage:

	CMPXCHG	dest,src ; 486+ only

Modifies flags:

CF PF AF ZF SF OF

Clocks Size
Operands 808x 286 386 486 Bytes
reg,reg - - - 6 2
reg,reg - - - 7 2