Трехадресная система команд
Адрес следующей команды связывает отдельные команды в программу, определяющую всю последовательность операций, т.е. процедуру обработки. Но этот адрес можно не задавать явно в каждой команде. Вместо этого, команды программы можно располагать в ячейках памяти в той последовательности, в которой они должны выполняться, а в схеме процессора предусмотреть специальное устройство –счетчик команд (указатель команд), назначение которого – вычисление адреса следующий команды. Команда становится трехадресной. Вычисление адреса следующей команды производится путем прибавления длины выполняемой команды (например, в байтах) к её адресу. Но отдельные смежные фрагменты программы могут размещаться и в несмежных участках памяти. Для их соединения в единую программу используются команды передачи управления, содержащие указание на начало следующего линейного участка программы.
Например, команда безусловного перехода:
Jmp(переход) <адрес передачи управления>.
В адресной части этих команд указывается адрес первой команды следующего фрагмента программы. Команды передачи управления могут быть и условными, когда передача управления производится с учетом кода условия, хранящегося в регистре состояния ЭВМ.
Команды условной передачи управления позволяют разрабатывать разветвляющиеся и циклические программы.Разновидностью команд передачи управления являются команды передачи управления с возвратом (команды переходов на подпрограммы). При выполнении этих команд перед передачей управления на подпрограмму запоминается адрес возврата (содержимое счетчика команд до передачи управления). Адрес возврата используется другой разновидностью команд передачи управления – командами выхода из подпрограммы.Таким образом, переход к трехадресной системе команд сопровождается:
· отказом от независимости в расположении отдельных команд в программе,
· введением в состав процессора специального устройства (счетчика команд), вычисляющего адрес следующей команды,
· введением в состав команд процессора специальных команд для задания точек нарушения выполнения команд в естественном порядке и указания адресов переходов. Это команды задания условного и безусловного переходов (с возвратом или без возврата).
Двухадресная система команд
В качестве адреса результата операции можно использовать адрес одного из исходных операндов. При этом результат операции записывается "поверх" одного из операндов, значение которого теряется, но команда становится компактнее .
Это двухадресные команды. В двухадресных командах один адрес рассматривается как адрес-источник, а другой – как адрес-приемник.
Естественно, что в этих командах только операнд-источник можно задавать непосредственным значением.
Неизбежная потеря значения одного из операндов при использовании двухадресных команд потребовала введения в состав команд процессора команды пересылки (копирования) объекта-источника в ячейку приемника. Примером такой команды может служить команда пересылки MOV:
MOV А1, А2.
Необходимость такого копирования данных в некоторых случаях значительно удлиняла программный код.
Дата добавления: 2015-08-14; просмотров: 1670;