A expressão algoritmica For-To-Do tem o seguinte formato:
for <count=1> to <count=n>
accao
accao
...
endfor
Esta expressão é uma variante da expressão while-do onde se sabe à partida quantas vezes queremos executar a sequência de acções. Por cada vez que a sequência de acções é executada a variável count é incrementada um valor. Quando atingir o valor count o ciclo termina.
Na linguagem Assembly do 8086 esta expressão é implementada com a instrução LOOP.
A instrução LOOP do 8086 tem o seguinte formato:
LOOP <label>
Quando executada, esta instrução, repete uma sequência de instruções um determinado número de vezes contido no registo CX. Cada vez que a instrução LOOP é executada o conteúdo do registo CX é decrementado um valor. Se depois de decrementado o conteúdo do registo CX for diferente de zero a instrução LOOP implementa um jump para o endereço referenciado por <label>. O <label> referencia um deslocamento em relação ao registo CS onde está a primeira instrução do ciclo. Esse valor tem de estar contido entre -128 e +127.
Por exemplo, o algoritmo:
for count=1 to count=10
AX=AX+1
endfor
CL=7
...
Seria traduzido para linguagem Assembly do 8086 da seguinte forma:
MOV CX, 0AH
REPETIR: INC AX
LOOP REPETIR
ADD CL, 07H
...