Организация циклов и разветвлений на ассемблере — это организация повторяющихся выполнений набора команд.
Введение
Управляющей структурой является синтаксический формат в языках программирования, который предназначен для формирования управляющего алгоритма. Стандартными структурами управления считаются, к примеру, такие структуры как if ... then ... else; case; goto; for; while ... do; repeat ... until. Все языки программирования обязаны гарантировать осуществление следующих форматов управления процедурой исполнения программы:
- Исполнение очерёдности операторов (структура следования).
- Применение контроля истинности условия, позволяющим сделать выбор среди разных возможных методов воздействия (структура ветвления).
- Исполнение заданной очерёдности операндов до момента истинности некоторого условия (структура повторений). То есть операционный набор, регулярно повторяющийся в одном и том же порядке. При всех повторениях возможно изменение операций. Повтор будет осуществляться до тех пор, пока не исполнится заданное условие, к примеру, до согласованности с компонентом информационных данных или по заполнению (обнулению) специальных счётчиков.
Организация циклов и разветвлений на ассемблере
Самым простым способом организации используемых в программе инструкций является их последовательное размещение друг за другом. Но практически невозможно сформировать какую-нибудь программу в виде единого большого списка инструкций. Когда компьютер должен осуществить принятие какого-либо решения, программе необходимо сделать выбор одного из набора допустимых инструкций. Программы, в которых имеется какая-нибудь возможность выбора, именуются программами с наличием ветвлений.
В других случаях может потребоваться вариант, когда компьютеру следует исполнить один и тот же перечень инструкций. В этом варианте применение цикла, к примеру, такого как FOR NEXT, может оказаться значительно более удобным, чем неоднократное повторение одинакового набора инструкций.
Структура ветвления, к примеру, IF условие THEN действие, даёт возможность компьютеру исполнять одну из перечня разных инструкций, что зависит от некоторого заданного условия. Структура ветвления позволяет задать два или даже более вариантов возможных инструкций, одну из которых компьютер исполнит в зависимости от ситуации.
Часто компьютеру необходимо поочерёдно исполнять один и тот же набор инструкций. Тогда вместо многократной записи этих инструкций, можно использовать операцию цикла. Цикл FOR NEXT может быть выполнен заданное число раз. Цикл WHILE исполняется до момента, пока справедливо (или несправедливо) некоторое заданное условие. То есть, число повторений цикла WHILE может варьироваться от нуля и практически до бесконечности.
Главным предназначение программы является предопределить поведение компьютера. Практически все программы принимают информационные данные и меняют свои действия в соответствии с этими данными. Для обеспечения возможности программе принимать решения служат специальные управляющие операторы. Когда человек принимает какое-нибудь решение, он вначале формулирует для себя вопрос. А затем отвечает на него, и по результатам этого ответа осуществляет определённые действия.
Компьютер действует приблизительно в том же ключе, только человек задаёт вопросы, а компьютер выполняет проверку булевых выражений. Булевым выражением является такое выражение, которое может принять только две величины. Или это выражение истинно, и тогда оно равно единице, или оно ложно, и тогда оно равно нулю. Самые простые булевы выражения могут сравнивать только две величины, например, две переменные или одну переменную и одну фиксированную величину.
В языке программирования ассемблер применяются следующие булевы операторы: AND, OR, XOR, NOT. Самым простым способом задания компьютеру определённого набора действий является использование оператора IF THEN. Данный оператор осуществляет проверку исполнения заданных условий. То есть, оператор IF THEN даёт указание компьютеру следовать заданным инструкциям лишь при исполнении определённого условия. В случае неисполнения заданного условия, компьютер не выполняет весь набор инструкций.
Оператор IF THEN ELSE имеет некоторые отличия от оператора IF THEN. А именно, он даёт указание компьютеру исполнить один комплект инструкций, если условие выполнено, и другой комплект инструкций, если это условие не выполнено.
Следует заметить, что программист в идеале хочет, чтобы компьютер исполнял максимум действий при минимальной работе программиста. Одним из методов уменьшения количества символов в программе является использование циклов. Главной задачей цикла является задать компьютеру многократное исполнение с незначительными модификациями набора инструкций. К примеру, требуется сформировать программу вывода на экран дисплея чисел от единицы до пяти. Это можно сделать следующим образом:
print 1
print 2
print 3
print 4
print 5
Но если потребуется написать программу вывода на экран монитора чисел от единицы до пяти тысяч, то программа в таком варианте будет очень длинной. Но можно применить циклы, которые заставят компьютер неоднократно исполнять заданные инструкции. То есть компьютер может выполнить сам весь комплекс рутинных действий:
mov i,1
mov ecx,5 a1:
print i
inc i
loop
a1
Если запустить выполнение этой программы, то она исполнит те же действия, что и предыдущая версия программы. Но данная версия способна вывести на экран как числа от единицы до пяти, так и числа от единицы до пяти миллионов. Нужно только просто поменять единственное число в команде mov ecx,5. Циклы обязывают компьютер напряжённо трудиться, избавляя программистов от лишней работы.
Цикл даёт команду компьютеру исполнять неоднократно один и тот же набор инструкций, но необходимо также задать и момент прекращения циклических действий. Это выполняется при помощи задания условия, которое может иметь значение true или false.