CP

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 (hl)
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

page revision: 13, last edited: 14 Jan 2023 17:12