- •5. Архитектура компьютерных устройств
- •5.1. Понятие архитектуры
- •5.2. Выбор структуры и формата команды
- •5.3. Способы адресации операндов
- •5.3.1. Прямая адресация
- •5.3.2. Прямая регистровая адресация
- •5.3.3. Непосредственная адресация
- •5.3.4. Косвенная адресация
- •5.3.5. Косвенная регистровая адресация
- •5.3.6. Регистровая автоинкрементная адресация
- •5.3.7. Индексная адресация
- •5.3.8. Базовая адресация
- •5.3.9. Базово-индексная адресация
- •5.4. Адресация с использованием программного счетчика
- •5.4.1. Непосредственная адресация.
- •5.4.2. Абсолютная адресация
- •5.4.3. Относительная адресация
- •5.4.4. Косвенная относительная адресация
- •5.4.5. Стековая адресация
- •5.5. Типовые форматы команд компьютерных систем
- •5.5.1. Команды формата “регистр-регистр”(rr)
- •5.5.2.Команды формата “региcтр-индексируемая ячейка памяти” (rx)
- •5.5.3. Трёхадресные команды формата
- •5.5.4. Команды формата “память - непосредственный операнд” (si)
- •5.5.5. Команды формата “память - память” (ss)
- •5.6. Проектирование компьютерных устройств. Система команд.
- •5.6.1. Форматы команд персональных компьютеров
- •5.6.3. Двухадресные команды со смещением (1810вм86)
- •5.6.4. Двухадресные команды с непосредственным операндом
- •5.6.5. Одноадресные команды со смещением
- •5.6.6. Команды укороченного формата
- •5.7. Система команд компьютера
- •5.7.1. Выбор системы команд
- •5.7.2. Фазы выборки, дешифрации и выполнения команды
- •5.7.3. Команды арифметических операций
- •5.7.4. Команды передачи управления
- •5.7.5. Команды обращения к подпрограммам
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 процессора и выполнение
