CPIR

Block compare with increment.
Function: A - [HL]; HL <- HL + 1; BC <- BC - 1
Repeat until BC = 0 or A = [HL]
 
Format:
1110 1101
 
byte 1: ED
 
1011 0001
 
byte 2: B1
 
Description: The contents of the memory location addressed by the HL register pair are subtracted from the contents of the accumulator and the result is discarded. Then the HL register pair is incremented and the BC register pair is decremented. If BC != 0 and A != [HL], the program counter is decremented by 2 and the instruction is re-executed.
 
Data Flow:
 
Timing:
 
Addressing Mode:
 
Flags:
 
Example:

OBJECT CODE
Before:
 
After: