Двойное исполнение: в случае, если в программе встречается условный переход, начинается выполнение обоих ветвей программы. При вычислении результатов условного перехода неправильная ветвь отбрасывается. Следовательно, этот способ неэффективен, а также требует двух АЛУ.
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 процессоры из памяти данные могут перемещать только в регистры.
Арифметические операции – бинарные и унарные.
Бинарные операции
Арифметические
Логические
Унарные операции
Сдвиги бывают логические, арифметические и циклические.
Арифметические и логические
Сравнения и условные переходы – необходимы для организации ветвления в программе. Команды сравнения выставляют значения флагов АЛУ. На основании выставленных флагов команды условных переходов выполняют ту или иную ветвь. Смысл: получить условие, а не результат.
Вызова процедур – сохраняет состояние процессора и запоминает значения счетчика команд, команды возврата из процедуры восстанавливает эти значения.
Управления циклом – изменяет значения счетчика цикла, анализирует условия окончания цикла и выполнение условия.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.