Intel 253666-024US User Manual

Page 185

Advertising
background image

Vol. 2A 3-139

INSTRUCTION SET REFERENCE, A-M

CMPS/CMPSB/CMPSW/CMPSD/CMPSQ—Compare String Operands

(R|E)DI ← (R|E)DI – 2;

FI;

ELSE IF (Doubleword comparison)

THEN IF DF

=

0

THEN

(R|E)SI

← (R|E)SI + 4;

(R|E)DI

← (R|E)DI + 4;

ELSE

(R|E)SI ← (R|E)SI – 4;

(R|E)DI ← (R|E)DI – 4;

FI;

ELSE (* Quadword comparison *)

THEN IF DF

=

0

(R|E)SI

← (R|E)SI + 8;

(R|E)DI

← (R|E)DI + 8;

ELSE

(R|E)SI ← (R|E)SI – 8;

(R|E)DI ← (R|E)DI – 8;

FI;

FI;

ELSE (* Non-64-bit Mode *)

IF (byte comparison)
THEN IF DF

=

0

THEN

(E)SI

← (E)SI + 1;

(E)DI

← (E)DI + 1;

ELSE

(E)SI ← (E)SI – 1;

(E)DI ← (E)DI – 1;

FI;

ELSE IF (Word comparison)

THEN IF DF

=

0

(E)SI

← (E)SI + 2;

(E)DI

← (E)DI + 2;

ELSE

(E)SI ← (E)SI – 2;

(E)DI ← (E)DI – 2;

FI;

ELSE (* Doubleword comparison *)

THEN IF DF

=

0

(E)SI

← (E)SI + 4;

(E)DI

← (E)DI + 4;

ELSE

Advertising