Координация работ исполнительных элементов (арифметико-логических устройств, регистров и т.п.), страница 5

Двойное исполнение: в случае, если в программе встречается условный переход, начинается выполнение обоих ветвей программы. При вычислении результатов условного перехода неправильная ветвь отбрасывается. Следовательно, этот способ неэффективен, а также требует двух АЛУ.

 2) УСЛОВНОЕ ИСПОЛНЕНИЕ

   (программно-аппаратный способ)

Вводятся специальные команды, в зависимости от результата выполнения условия эти команды исполняются или не исполняются. Это особая форма условных переходов, переходов как таковых нет, в зависимости  от условия выполняется та или иная определенная команда.

АРХИТЕКТУРА КОМАНД

ОБЗОР УРОВНЯ АРХИТЕКТУРЫ КОМАНД

АРХИТЕКТУРЫ КОМАНД – оболочка для процессора. Промежуточное звено между программой и аппаратным обеспечением. Скрывает детали реализации процессора от программиста. Обеспечивает совместимость новых процессоров с имеющимся ПО.

МЕТОДЫ АДРЕСАЦИИ

Трехадресная

ADD R1, R2, R3

R1 = R2 + R3

Двухадресная

ADD R1, R2

R1 = R1 + R2

Одноадресная

ADD R1

A = A+R1

Безадресная

ADD

A = A + B

Метод адресации – описывает количество операндов, указываемых для команды. Чем больше операндов, тем менее гибкая адресация.

При трехадресной адресации к ходе команды указываются адреса обоих операндов и адрес результата. Такой метод адресации очень гибок, позволяет работать с произвольно расположенными данными. Применяется в RISC-процессорах, в которых операндами могут быть только регистры.

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

Двухадресная – менее гибкая, возможно появление промежуточных операций (сумма и вычитание). Плюс данного метода – меньше адресов нужно указывать.

Одноадресная – типичный метод адресации при работе с программами.

Специальный регистр А (аккумулятор) – регистр с предопределенным адресом, чтобы к нему обратиться не нужно указывать его адрес, процессор и так его знает.

Безадресная – работает с аккумуляторами или стеками.

СПОСОБЫ АДРЕСАЦИИ

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

MOV R1, 4

Прямая

MOV R1, [10]

Регистровая

MOV R1, R2

Косвенная регистровая

MOV R1, [R2]

Индексная

MOV R1, 10+[R2]

Относительная индексная

MOV R1, [R2+R3]

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


СТЕКОВАЯ АДРЕСАЦИЯ

Стек – особый тип памяти, работа с которой может осуществляться с помощью двух операций: поместить на вершину стека и взять из вершины стека. Это простой и легкий в реализации способ работы с памятью, который применяется, когда нужно быстро сохранить небольшое количество данных (например, при вызове функции).

ТИПЫ КОМАНД

Перемещения данных – перемещают данные между памятью и регистрами. RICS процессоры из памяти данные могут перемещать только в регистры.

Арифметические операции – бинарные и унарные.

Бинарные операции

          Арифметические

          Логические

Унарные операции

          Сдвиги бывают логические, арифметические и циклические.

          Арифметические и логические

Сравнения и условные переходы – необходимы для организации ветвления в программе. Команды сравнения выставляют значения флагов АЛУ. На основании выставленных флагов команды условных переходов выполняют ту или иную ветвь. Смысл: получить условие, а не результат.

Вызова процедур – сохраняет состояние процессора и запоминает значения счетчика команд, команды возврата из процедуры восстанавливает эти значения.

Управления циклом – изменяет значения счетчика цикла, анализирует условия окончания цикла и выполнение условия.