3.1.4. Состав команд операций ветвления

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

Обычно микропроцессорная система выполняет команды последовательно. Шестнадцатиразрядный счетчик команд микропроцессора хранит всегда адрес следующей извлекаемой из памяти команды до ее выполнения. Содержимое его обычно повышается в каждом счете.

Команды ветвления или перехода являются средством изменения значения содержимого счетчика команд и, следовательно, изменения нормальной последовательности выполнения программы.

Эти команды разделены на две группы: безусловного перехода и условного перехода. Первая команда в табл. 3.6 является командой безусловного перехода. Команда ПЕРЕЙТИ непосредственной адресации является трехбайтовой, используемой для изменения специфического адреса в счетчике команд МП.

На рис. 3.9 приведен пример использования такой команды безусловного перехода. Здесь адрес 2000 загружен в счетчик команд, информация о нем следует непосредственно за КОП, поэтому адресация называется непосредственной. 

Заметим на рисунке, что младшая часть адреса находится во втором байте памяти, а старшая является содержимым третьего байта памяти. 

Таблица 3.6 Состав команд операций ветвления

Операция

Адресация

Мнемоника

КОП

Байты

Формат

команды

Символика

Перейти в LOC

Перейти в LOC,

если 0

Перейти в LOC, если не 0

Перейти в LOC,

если перенос

Перейти в LOC,

если не перенос

непосредственная

« »

« »

« »

« »

JMP

JZ

JNZ

JC

JNC

C3

CA

C2

DA

D2

3

3

3

3

3

КОП

Мл. адрес

Ст. адрес

КОП

Мл. адрес

Ст. адрес

КОП

Мл. адрес

Ст. адрес

КОП

Мл. адрес

Ст. адрес

КОП

Мл. адрес

Ст. адрес

(PC)  

(адрес)

если

Z=1, то

(PC)   (адрес)

Z=0,

(PC)  

(адрес)

CY=1,

(PC)       (адрес)

CY=0,

(PC)  

(адрес)

Одна команда этого типа будет использована для запуска счетчика команд в момент начала выполнения новой программы. Мы можем рассматривать команду ве
твления или безусловного перехода как способ загрузки новой информации об адресе в счетчик команд. 

Четыре последние команды ветвления в табл. 3.6 являются командами условного перехода. Эти команды повлекут за собой непосредственную загрузку адреса, если только будут выполнены специальные условия. В противном случае счетчик команд будет инкрементирован нормально.

На рис. 3.10 показан пример команды ПЕРЕЙТИ, если 0.

В этом случае счетчик команд 2013 до операции будет нормально инкрементирован, если индикатор нуля не установлен в 1. Микропроцессор проверяет это и находит 1, значит, результатом последней логической или арифметической операции был 0.

Условия перехода выполнены и МП загружает новый адрес 2008 в счетчик команд. Этот новый адрес поступает из памяти программы; команда опроса использует непосредственную адресацию.

Следующей выполняемой командой будет команда размещения данных в памяти по адресу 2008, но не по адресу 2013, как мы могли бы предположить при последовательном выполнении программы.

Наш МП перешел к новой ячейке памяти программы. Отметим, что пример на рис. 3.10 показывает переход назад, что случается наиболее часто.

Команды перехода или ветвления существуют практически во всех программах МП. Они очень эффективны как средство принятия решений и удобны для формирования циклов программы.