New block transfer instructions can move up to 64 kilobytes from memory to memory or between memory and I/O peripheral ports. Block instructions and (LoaD,Increment/Decrement,Repeat) use HL to point to the source address, DE to the destination address, and BC as a byte counter. Bytes are copied from source to destination, the pointers are incremented or decremented, and the byte counter is decremented until BC reaches zero. Non-repeating versions and move a single byte and bump the pointers and byte counter, which if becomes zero resets the P/V flag. Corresponding memory-to-I/O instructions , , , , , , and operate similarly. The Z80 can input and output any register to an I/O port using register C to designate the port (the 8080 only performs I/O through the accumulator A).