Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СиФО часть 5.1.doc
Скачиваний:
55
Добавлен:
15.09.2014
Размер:
771.07 Кб
Скачать

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

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

Существует несколько форматов команд условного перехода. Например, формат RR имеет следующий вид рис. 5.32:

В данной структуре поле КОП кодирует условие перехода, которое при каждом исполнении команды анализируется управляющим автоматом. В ходе преобразования операндов содержимое регистра, указанного в поле R, модифицируется. При получении результата (например, нуля в счетчике R), влекущего за собой выполнение заданного условия, осуществляется переход к команде, адрес которой хранится в регистре с номером M.

Возможна также и другая форма исполнения команды. А именно: переход к адресу из регистра М осуществляется при невыполнении условия, указанного в поле КОП. Тогда при выполнении условия осуществляется выход из цикла.

Аппаратные средства компьютера, необходимые для отработки команд передачи управления, показаны на рис. 5.33.

Пусть, например, при выполнении некоторого программного цикла в RG C считывается команда условного перехода по признаку Nz. Алгоритм ветвления при этом будет состоять в следующем.

Адрес регистра из поля R передается на адресный вход B РЗУ, в результате чего операнд (содержимое счетчика) читается на вход АЛУ. После обработки модифицированное значение помещается на место исходного операнда; одновременно в регистр RG F записываются признаки результата. Управляющий автомат анализирует флаги, и если z=0, то адрес следующей команды извлекается из регистра номер, которого указан в поле М. Данное значение помещается в счетчик IP и используется как адрес команды возврата в начало цикла. При z =1 выполняется инкрементирование IP и из ОЗУ читается следующая команда.

Среди команд формата RX также имеются команды условного перехода. Формат управляющего слова при этом имеет следующий вид рис. 5.34.

В данной команде в поле М указывается номер РОН, содержащего адрес перехода. Это определяет следующие действия при выполнении ветвления в программе.

В стадии отработки очередного программного цикла команда модифицирует содержимое ячейки ОЗУ по адресу:

,

и если условие, указанное в поле КОП, не выполняется, то управление передается команде, расположенной по адресу из М. В противном случае выполняется следующая команда, то есть осуществляется выход из цикла.

5.7.5. Команды обращения к подпрограммам

На практике часто встречаются задачи, в которых одну и туже вычислительную процедуру необходимо выполнять несколько раз. Удобнее всего этот процесс реализуется с использованием различных подпрограмм, представляемых в составе ПО отдельными самостоятельными модулями.

В результате отработки подпрограммы пользователь получает ответ в соответствии с некоторым стандартным алгоритмом, после чего выполняется возврат в главную программу и завершение ее выполнения.

Команда перехода к подпрограмме может иметь следующий формат (см. рис. 5.35).

В командах данного формата используется механизм стековой адресации. При этом в поле R1 указывается номер регистра, хранящего адрес возврата к основной программе, а поля УА (управление адресом) и R2 задают адрес начала выполняемой подпрограммы.

Аппаратные средства компьютера, необходимые для отработки команд передачи управления, показаны на рис. 5.35.

В общем случае, в данной схеме может быть реализован следующий алгоритм. На первом шаге содержимое поля R1 передается на адресный вход РЗУ, и в адресуемый регистр помещается текущее значение из счетчика команд. Адрес перехода к подпрограмме вычисляется в соответствии с содержимым УА и полем R2 регистра команды. Под действием сигналов управляющего автомата сформированное значение записывается в IP и адресует в ОП первую команду выполняемой подпрограммы.

Последней командой подпрограммы всегда является команда возврата к основной программе. При этом в поле R1 данной команды указывается номер регистра, хранящего адрес точки возврата к прерванной программы. Управляющий автомат пересылает этот адрес из РЗУ в IP процессора и выполнение

156