Команды передачи управления

Работая обычным образом в состоянии выполнения программы, процессор интерпретирует команды программы последовательно. Прочитав из памяти код очередной команды по адресу, на который указывает счётчик команд, процессор дешифрирует этот код, определяет из скольки байт эта текущая команда состоит. Далее он увеличивает содержимое счётчика команд (PC) на число равное количеству байт текущей команды. Если команда однобайтная, то (PC)(PC)+1; если команда двухбайтная, то (PC)(PC)+2; если команда трёхбайтная, то (PC)(PC)+3. После выполнения текущей команды в счётчике команд, таким образом, уже готов адрес новой команды. Новая команда и последующие интерпретируются далее аналогичным образом. Команды выполняются по очереди в порядке их размещения в памяти.

Вместе с тем, часто по условиям алгоритма возникает необходимость в изменении последовательного хода выполнения команд и организации переходов в различные точки программы. Для этой цели предназначены команды передачи управления. Они способны сформировать новое содержимое счётчика команд таким образом, чтобы обеспечить переход нужную точку. То есть – передать управление процессором тем командам, которые начинаются с адреса точки перехода.

Кроме того, нередко алгоритм требует не просто переходов в программе. Он требует ветвлений хода программы на разные пути, выбираемые в зависимости от результата анализа выполнения каких-то задаваемых условий. В системе команд процессора 8080 для реализации таких действий имеются команды условных переходов. При этом условиями для переходов являются состояния битов регистра признаков.

Команды передач управления различаются наличием или отсутствием условия на выполнение перехода (условный или безусловный переходы). Команды безусловных переходов различаются способом определения нового содержимого счётчика команд. А команды условных переходов различаются вариантами условий.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: