Program counter holds the address of either the first byte of the next instruction to be fetched for implementation or the address of the next byte of a multi byte instruction, which has not been totally fetched. In both the cases it gets increased automatically one by one as the instruction bytes get fetched. Also Program register remains the address of the next instruction