48
8. Команды управления выполнением программы
8.1. Команды безусловной и условной передачи
управления
Команды управления выполнением программы имеют большое значение,
поскольку они позволяют вмешиваться в процесс автоматического формиро -
вания процессором адреса следующей выполняемой команды .
Как уже говорилось выше, процессор всегда выбирает очередную коман-
ду из той ячейки памяти, адрес которой в данный момент находится в ре-
гистре-счетчике команд . Осуществляя соответствующее изменение содер-
жимого регистра–счетчика команд процессора , команды передачи управле-
ния позволяют вместо тривиальной последовательной выборки команд из
памяти реализовать переходы в нужные точки программы . Переходы на ад -
рес, задаваемый командами передачи управления, могут быть безусловными,
т.е . выполняемыми в любом случае, и условными. Выполнение или не вы -
полнение последних зависит от результата выполнения процессором коман-
ды, предшествующей команде условного перехода, например, команда –
ВЕТВЛЕНИЕ , ЕСЛИ РЕЗУЛЬТАТ ОПЕРАЦИИ РАВЕН НУЛЮ . Команды безус-
ловных и условных переходов позволяют обеспечивать, в частности , воз-
можность реализации таких важных конструкций программирования, как
циклы .
Как видно из вышесказанного , действием, совершаемым этими команда-
ми , является принудительное изменение содержимого регистра -счетчика
команд процессора в соответствии со значением задаваемого в команде тем
или иным образом адреса перехода к другой команде программы . При ука-
зании места перехода обычно используют два способа: в первом указывают
абсолютный адрес, на который следует осуществить переход, во втором ве -
личину смещения адреса перехода относительно текущего значения счетчика
команд , т.е. адреса самой команды перехода. Первый способ обеспечивает
возможность передачи управления в любую точку адресного пространства,
но требует больше места для размещения команды и больше времени на ее
выполнение. Второй способ обеспечивает более компактное кодирование
команд перехода, так как обычно для указания смещения используют всего
один байт. Указываемое в команде смещение может быть как положитель-
ным, так и отрицательным числом, благодаря чему безусловное или услов-