Operation
IF AddressSize = 16THEN use DI for dest-index;ELS
E (* AddressSize = 32 *) use EDI for dest-index;
FI;
If byte type of instruction
THEN
AL - [dest-index]; (* Compare byte in AL and dest *)
IF DF = 0 THEN IncDec 1 ELSE IncDec -1; FI;
ELSE
IF OperandSize = 16
THEN
AX - [dest-index]; (* compare word in AL and dest *)
IF DF = 0 THEN IncDec 2 ELSE IncDec -2; FI;
ELSE (* OperandSize = 32 *)
EAX - [dest-index];(* compare dword in EAX and dest *)
IF DF = 0 THEN IncDec 4 ELSE IncDec -4; FI;
FI;
FI;
dest-index = dest-index + IncDec
[Back: Description]
[Next: Flags Affected]