L'istruzione JMP può essere utilizzato per attuare cicli. Ad esempio, il seguente frammento di codice può essere utilizzato per l'esecuzione del ciclo corpo 10 volte.

MOV CL, 10
L1:
<LOOP-BODY>
DEC CL
JNZ L1
Il set di istruzioni del processore, tuttavia, comprende un gruppo di istruzioni del ciclo di attuazione iterazione. L'istruzione LOOP base ha la seguente sintassi -

LOOP label
Dove, l'etichetta è l'etichetta che identifica il bersaglio istruzione bersaglio come nelle istruzioni di salto. L'istruzione LOOP presuppone che il registro ECX contiene il numero di loop. Quando viene eseguita l'istruzione loop, il registro ECX viene decrementato e il controllo passa all'etichetta di destinazione, fino a quando il valore del registro ECX, cioè, il contatore raggiunge il valore zero.

Il frammento di codice di cui sopra potrebbe essere scritto come -

Codice:
mov ECX,10
l1:
<loop body>
loop l1
Esempio
Il seguente programma stampa il numero da 1 a 9 sullo schermo -

section	.text
   global _start        ;must be declared for using gcc
	
_start:	                ;tell linker entry point
   mov ecx,10
   mov eax, '1'
	
l1:
   mov [num], eax
   mov eax, 4
   mov ebx, 1
   push ecx
	
   mov ecx, num        
   mov edx, 1        
   int 0x80
	
   mov eax, [num]
   sub eax, '0'
   inc eax
   add eax, '0'
   pop ecx
   loop l1
	
   mov eax,1             ;system call number (sys_exit)
   int 0x80              ;call kernel
section	.bss
num resb 1
Quando il codice di cui sopra è compilato ed eseguito, esso produce il seguente risultato -

Codice:
123456789: