def LOOPNZ(cpu, target):
counter_name = {<NUM_LIT:16>: '<STR_LIT>', <NUM_LIT:32>: '<STR_LIT>', <NUM_LIT:64>: '<STR_LIT>'}[cpu.address_bit_size]<EOL>counter = cpu.write_register(counter_name, cpu.read_register(counter_name) - <NUM_LIT:1>)<EOL>cpu.PC = Operators.ITEBV(cpu.address_bit_size, counter != <NUM_LIT:0>, (cpu.PC + target.read()) & ((<NUM_LIT:1> << target.size) - <NUM_LIT:1>), cpu.PC + cpu.instruction.size)<EOL>
Loops if ECX counter is nonzero.

:param cpu: current CPU.
:param target: destination operand.