Структура и типы команд
При компиляции программ (преобразовании исходной программы в программу на уровне команд процессора) производится декомпозиция процедур программ до уровня операций обработки двух или одного операндов. В первом случае команда является двухместной (например – сложение двух чисел с получением числа-результата), во втором – одноместной (например – изменение знака операнда).
В любом случае команда должна задавать операцию и операнды. Обычно операция задается номером (кодом) операции во множестве операций, определенных для операционного устройства. Если операнды, используемые в операции, являются результатами ранее выполненных операций (тип операндов – переменная), то они задаются номерами (адресами) зарезервированных для них ячеек памяти. Если операнд известен до выполнения операции, то он может задаваться в команде своим значением (непосредственный операнд).
В случае двухместной операции команда должна задавать (явно или неявно):
1. операцию,
2. адрес или значение первого операнда,
3. адрес или значение второго операнда,
4. адрес сохранения результата,
5. адрес следующей команды (или двух альтернативных адресов команды для реализации ветвлений).
Задание операции
Операция задается полем кода операции. Это основное назначение кода операции. Каждый процессор ориентирован на аппаратную реализацию определенного конечного набора операций. В поле кода операции обычно пишется номер операции из набора реализованных операций. По этому номеру или выбирается специализированное исполнительное устройство, или универсальное исполнительное устройство настраивается на заданный вид обработки. Возможны комбинации этих решений.
Кроме исполняемой операции, код операции часто задает формат и тип обрабатываемых данных. Под форматом здесь понимается размерность операндов (байт, слово, двойное слово и т.д.), а под типом – тип арифметики (целочисленные операции, с плавающей точкой, векторные операции и т.д.).
Поле адресов
Если все перечисленные адреса задаются явно (соответствующими полями), то команда имеет четырех- или пятиадресную структуру (рис. 3.5). Два альтернативных адреса следующей команды необходимы для реализации ветвлений.
Код операции | Адрес 1 | Адрес 2 | Адрес 3 | Адрес 4 (4,5) |
Рис. 3.5 Структура четырехадресной команды |
Четырехадресная структура определяет необходимый набор адресов для задания двухместной операции. Но все указанные адреса задавать в явном виде необязательно. Здесь возможны различные варианты.
Дата добавления: 2021-01-26; просмотров: 377;