z80:Opcodes:CP

From Learn @ Cemetech
Jump to: navigation, search

CP is a subtraction from A that doesn't update A, only the flags it would have set/reset if it really was subtracted.

Syntax

   CP op8

op8 is any one of the allowed inputs.

Allowed instructions

   cp a
   cp b
   cp c
   cp d
   cp e
   cp h
   cp l
   cp ixh
   cp ixl
   cp iyh
   cp iyl
   cp (ix+n)
   cp (iy+n)
   cp n		;8 bit constant

Effects

C, S, and Z flags modified by definition P/V detects overflow

Uses

Here are some general rules on using CP

Unsigned

If A == N, then Z flag is set. If A != N, then Z flag is reset. If A < N, then C flag is set. If A >= N, then C flag is reset.

Signed

If A == N, then Z flag is set. If A != N, then Z flag is reset. If A < N, then S and P/V are different. A >= N, then S and P/V are the same.

T-States

r denotes 8-bit register.

r 4
X 7
(hl) 7
(ix+X) 19
(iy+X) 19

See also

BIT,CALL,CPD,CPDR,CPI,CPIR,JP,JR,RET