На этом шаге мы рассмотрим представление циклов.
Укажем две наиболее часто встречающиеся структуры.
L1: . . . . СМР ЕАХ JL L1
L2: СМР ЕАХ, 10 JA L1 . . . . JMP L2 L1:
Первая структура соответствует следующему фрагменту на С:
int i;
. . . .
do {
while (i < 10) ;
var i: integer;
. . . .
repeat
. . . .
until (i >= 10) ;
Вторая структура соответствует фрагменту на С:
unsigned int i;
. . . .
while (i <= 10) {
. . . .
}
var i:word;
. . . .
while (i<=10) do
begin
. . . .
end;
Первая структура может быть несколько видоизменена и принимать следующий вид.
JMP L2
L1:
. . . .
L2:
СМР ЕАХ,10
JL L1
В последней структуре цикл UNTIL превращается в цикл WHILE.
В своем рассмотрении мы ничего не сказали о цикле FOR, но, в принципе, это все тот же цикл WHILE.
На следующем шаге мы рассмотрим локальные переменные.