- •1.Форматы команд Форматы команд.
- •2.Программы с разветвлениями
- •2.2. Организация разветвлений
- •3.Неявная адресация
- •4.Непосредственная адресация
- •5.Прямая адр
- •6.Базовая адр. 7Адресация по счк
- •8.Косвенная адр
- •10.Макрокоманды
- •11. Машинные циклы
- •12.Операционное устройство.Блок,э лемент.
- •13.Микрооперация,Микрокоманда,микротакт
- •14.Совместимые и несовместимые микрооперации
- •15.Язык операционных схем
- •16.Язык микропрограмм
- •17 Описание функционирования операционного устройства
- •18.Синхронные и ассинхронные об
- •19.Раздельная и общая магистрали
- •2.4. Магистрали
- •20Мультепликсирование шин
- •21 Цвк с переменным форматом
- •22.Командный цикл двухадресного процессора
- •23.Функции оа и уа
- •24 Типы уа
- •25.Законы функционирования автоматов
- •26.Способы перевода автомата из одного состояния в другое
- •27.Принцип разметки состояний автоматов(Мили,Мура)
- •5.1. Отмеченный граф автомата мура
- •5.2. Отмеченный граф автомата мили
2.Программы с разветвлениями
2.2. Организация разветвлений
Для организации разветвлений в систему команд процессора вводят специальные команды переходов.
а).
Команда
безусловного перехода (БП) – JMP.
Рис.10
По этой команде осуществляется безусловный переход на команду с адресом А.
СЧК := А.
б) Команды условных переходов (УП) – Jψ
В команде :
J – это команда перехода,
Ψ – признак перехода,
А – адрес перехода.
результат записывается в аккумулятор (АК), признаки параллельно записываются в специальный регистр признаков РП
АК
. . .
Результат
Признаки
N
Z
C
РП
Для каждого признака отводится 1 разряд регистра признаков. Все эти признаки по одноразрядным цепям выводятся из регистра признаков и подаются в устройство управления для их анализа и выполнения переходов.
Для составления программ имеющих разветвления, необходимо, чтобы в системе команд процессора имелись команды безусловных и условных переходов.
№
|
КОП |
Операция |
Команда |
Содержание |
8 |
1000 |
Безусловный переход |
JMP A |
СЧК := А |
9 |
1001 |
Условный переход по знаку N=1 |
JN A |
IF N=1 THEN СЧК :=А |
10 |
1010 |
Условный переход АК=0 |
JZ A |
IF AK=0 THEN СЧК := А |
3.Неявная адресация
Если в команде адрес операнда не указан, то он (операнд) находится в аккумуляторе (Аk), т.е. адрес операнда указан неявно (по умолчанию). В команде указывается только код операции, который показывает какую операцию необходимо выполнить над содержимым аккумулятора, а адресная часть команды отсутствует.
Например:
INC Ak:=Ak+1
DEC Ak:=Ak-1
NO Ak:=
SQR Ak:=(Ak)²
Таким образом, если некоторая функция зависит только от одного аргумента, то её можно выполнить одной специальной командой, если этот аргумент (операнд) предварительно занести в Ak.
Например, функцию
y=a(a+1)²
можно реализовать одной командой. Пусть FY – есть код её операции. Тогда команда FX реализует:
FY Ak:=Ak·(Ak+1)²
4.Непосредственная адресация
Данное непосредственно находится в самой команде и распологается в её адресной части. Для отличия этой команды от команды с адресом, введём в изображение кодаоперации букву K (константа). Операция выполняется над содержимым Ak и данным D, записанным в команде. Например:
RDK D Ak:=D – непосредственная загрузка данного D в Ак
ADDK D Ak:=Ak+D
SUBK D Ak:=Ak-D
MULK D Ak:=Ak·D
Данные команды используются для загрузки констант в Ak (RDK D) или выполнения операций с содержимым Ak и константой D.
5.Прямая адр
В таких командах указывается адрес второго операнда, а первый находится в Ak. Эти команды рассматривались ранее и для них были написаны программы.
Схема
6.Базовая адр. 7Адресация по счк
8.Косвенная адр
В команде указан адрес ОЗУ, где находится адрес данного. Признаками того, что данная команда является косвенной в изображении кода операции вводим знак @.
Например:
а) команда загрузки данного косвенная.
RD@ A Ak:=ОЗУ(ОЗУ(А))
В приведённой записи во внешних скобках указывается где находится адрес данного. Схема
WR@ A ОЗУ(ОЗУ(А)):=Ak
Рис.20
ADD@ A Ak:=Ak+ОЗУ(ОЗУ(А))
Точно также косвенную адресацию можно использовать и для других команд:
SUB@ A
MUL@ A
9.Специальная система команд
Для улучшения временных характеристик вычислителя можно ввести ряд специальных команд:
Умножение на 2 можно выполнить путём сдвига данного влево на 1 разряд
AK L Ak:=L1(AK),
где L1 означает сдвиг влево (left) на 1 разряд, AK – аккумулятор.
Деление на два можно выполнить путём сдвига данного вправо на 1 разряд:
AK R Ak:=R1(AK),
где R1 означает сдвиг вправо (right) на 1 разряд.
Сложение с единицей можно реализовать командой инкрементор:
INC Ak:=Ak+1.
Вычитание единицы реализуется командой декрементор:
DEC Ak:=Ak-1.
Можно ввести и ряд других команд:
SQR – возведение в квадрат,
INC2 – сложение с 2,
SIN – тригонометрическая операция sin.
Следует заметить, что введение дополнительных команд требует дополнительного оборудования, но повышает производительность вычислителя. Поэтому выбор их должен быть обоснованным с точки зрения объёма оборудования и производительности вычислителя.
Выполнение каждой команды начинается с того, что она вначале извлекается из ОЗУ и передаётся в устройство управления (УУ). Этот процесс, в особенности, для длинных команд, которые хранятся в нескольких ячейках, занимает значительное время. Поэтому уменьшение числа обращений к ОЗУ может значительно повысить быстродействие вычислителя.
Если система команд определяет сложность арифметического устройства, то программа – быстродействие вычислителя (время решения задачи).
Таким образом, по каждой выбранной системе команд и соответствующей ей программе можно получить различные технические характеристики. Предварительный их анализ позволяет выбрать один вариант технической реализации специализированного вычислителя.
