Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Трехадресная система команд

Поле адресов

Структура и типы команд

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

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

В случае двухместной операции команда должна задавать

1. операцию,

2. адрес или значение первого операнда,

3. адрес или значение второго операнда,

4. адрес сохранения результата,

5. адрес следующей команды (или двух альтернативных адресов команды для реализации ветвлений).

Задание операции

Операция задается полем кода операции. По этому номеру коду или выбирается специализированное исполнительное устройства, или универсальное исполнительное устройство настраивается на заданный вид обработки. Возможны комбинации этих решений.

Кроме исполняемой операции, код операции часто задает формат и тип обрабатываемых данных. Под форматом здесь понимается размерность операндов (байт, слово, двойное слово и т.д.), а под типом – тип арифметики (целочисленные операции, с плавающей точкой, векторные операции и т.д.).

Если все перечисленные адреса задаются явно (соответствующими полями), то команда имеет четырех- или пяти-адресную структуру. Два альтернативных адреса следующей команды необходимы для реализации ветвлений.

Код операции Адрес 1 Адрес 2 Адрес 3 Адрес 4 (4,5)
Структура четырехадресной команды

 

Четырехадресная структура определяет необходимый набор адресов для задания двухместной операции. Но все указанные адреса задавать в явном виде необязательно. Здесь возможны различные варианты.

Адрес следующей команды связывает отдельные команды в программу, определяющую всю последовательность операций, т.е. процедуру обработки. Но этот адрес можно не задавать явно в каждой команде. Вместо этого, команды программы можно располагать в ячейках памяти в той последовательности, в которой они должны выполняться, а в схеме процессора предусмотреть специальное устройство счетчик команд (указатель команд), назначение которого – вычисление адреса следующий команды. Команда становится трехадресной. Вычисление адреса следующей команды производится путем прибавления длины выполняемой команды (например, в байтах) к её адресу. Но отдельные смежные фрагменты программы могут размещаться и в несмежных участках памяти. Для их соединения в единую программу используются команды передачи управления, содержащие указание на начало следующего линейного участка программы.

Например, команда безусловного перехода:

Jmp(переход) <адрес передачи управления>.

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

Команды условной передачи управления позволяют разрабатывать разветвляющиеся и циклические программы.Разновидностью команд передачи управления являются команды передачи управления с возвратом (команды переходов на подпрограммы). При выполнении этих команд перед передачей управления на подпрограмму запоминается адрес возврата (содержимое счетчика команд до передачи управления). Адрес возврата используется другой разновидностью команд передачи управления – командами выхода из подпрограммы. Таким образом, переход к трехадресной системе команд сопровождается:

· отказом от независимости в расположении отдельных команд в программе,

· введением в состав процессора специального устройства (счетчика команд), вычисляющего адрес следующей команды,

· введением в состав команд процессора специальных команд для задания точек нарушения выполнения команд в естественном порядке и указания адресов переходов. Это команды задания условного и безусловного переходов (с возвратом или без возврата).

Двухадресная система команд

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

Это двухадресные команды. В двухадресных командах один адрес рассматривается как адрес-источник, а другой – как адрес-приемник.

Естественно, что в этих командах только операнд-источник можно задавать непосредственным значением.

Неизбежная потеря значения одного из операндов при использовании двухадресных команд потребовала введения в состав команд процессора команды пересылки (копирования) объекта-источника в ячейку приемника. Примером такой команды может служить команда пересылки MOV:

MOV А1, А2.

Необходимость такого копирования данных в некоторых случаях значительно удлиняла программный код.

<== предыдущая лекция | следующая лекция ==>
Организация оперативной памяти | Одноадресная система команд
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 1342; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.