Esto es assembly puro, ejecuta el codigo del bucle (inc eax) un numero X de veces (de acuerdo al valor de ECX):
http://pdos.csail.mit.edu/6.828/2006/readings/i386/LOOP.htm
Tambien podes hacerlo con cmp's y jmp's.
Tambien podrias hacer lo contrario, iniciando el contador a 0, incrementandolo en cada pasada y comprobando si es igual (o mayor como en el ejemplo siguiente) al limite:
Este bucle se ejecutara mientras el resultado devuelto por func sea diferente de 0:
Podes hacer uso de JCC tambien.
Código (asm) [Seleccionar]
mov ecx, 5
xor eax, eax
bucle:
inc eax
loop bucle
http://pdos.csail.mit.edu/6.828/2006/readings/i386/LOOP.htm
Tambien podes hacerlo con cmp's y jmp's.
Código (asm) [Seleccionar]
mov ecx, 5
xor eax, eax
bucle:
inc eax
dec ecx
cmp ecx, 0
jne bucle
Tambien podrias hacer lo contrario, iniciando el contador a 0, incrementandolo en cada pasada y comprobando si es igual (o mayor como en el ejemplo siguiente) al limite:
Código (asm) [Seleccionar]
xor ecx, ecx
xor eax, eax
bucle:
inc eax
add ecx, 2
cmp ecx, 9
jna bucle
Este bucle se ejecutara mientras el resultado devuelto por func sea diferente de 0:
Código (asm) [Seleccionar]
bucle:
call func
cmp eax, 0
jne bucle
Podes hacer uso de JCC tambien.