next up previous contents
Next: For-To-Do Up: Ciclos Previous: While-Do

Repeat-Until

A expressão algoritmica Repeat-Until tem o seguinte formato:

        repeat  
                accao
                accao
                ...
        until <condicao>
        endrepeat

Esta expressão tem o mesmo significado que a expressão while-do com a diferença de que a condição é verificada apenas no fim de ser executada a sequência de acções. Isto faz com que a sequência de acções seja sempre executada uma vez, quer a condição se verifique, quer não.

Na linguagem Assembly do 8086 esta expressão é implementada com um jump condicional.

Por exemplo, o algoritmo:

        repeat 
                AX=AX+1
        until AX<BX 
        endrepeat
        CL=7
        ...

Seria traduzido para linguagem Assembly do 8086 da seguinte forma:

REPETIR:        INC AX 
                CMP AX, BX
                JB REPETIR
                ADD CL, 07H
                ...

Outra hipótese seria:

REPETIR:        INC AX
                CMP AX, BX
                JNB FIMREPETIR
                JMP REPETIR
FIMREPETIR:     ADD CL, 07H
                ...

Se a sequência de instruções a repetir (sequência de instruções que está entre o Repeat e o Until contiver muitas instruções a segunda hipótese é a mais aconselhável, uma vez que, como já foi referido, os jumps condicionais são do tipo short.



Maria Joao Nicolau
1/28/1999