На этом шаге мы рассмотрим представление циклов.
Укажем две наиболее часто встречающиеся структуры.
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.
На следующем шаге мы рассмотрим локальные переменные.