Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
10.02.2015
Размер:
632.83 Кб
Скачать

Форматы команд в эвм с внутренней памятью процессора

Внутренняя память используют для хранения наиболее интенсивно используемых на данном этапе вычислений индексов, базовых адресов, промежуточных результатов. Емкость ВП обычно 8-32 слова. При наличии ВП операнд может размещаться как в ВП, так и в ОП. Адрес операнда, хранимого в ВП, называют адресом R типа, а хранимого в ОП – адресом S типа.

При этом арифметические и логические операции в зависимости от расположения операндов могут выполняться в следующих модификациях:

R * R R

R * S R; S * R R; R * S S; S * R S

S * S S

а посылочные операции реализуют следующие передачи:

R R; R S; S R; S S

1 q1 q

КОП

R1

R2

q = 3 - 5

m = 10 - 20

1 q1 m

КОП

R1

S2

1 m1 m

КОП

S1

S2

Классификация машинных команд.

По характеру выполняемых операций различают следующие группы команд:

  1. Команды арифметических операций для двоичных чисел.

  2. Команды десятичной арифметики.

  3. Команды логических операций.

  4. Команды передачи кодов.

  5. Команды операций ввода – вывода.

  6. Команды передачи управления и др.

По количеству адресов в теле команды :

  • одноадресные

  • двухадресные

  • трехадресные

  • безадресные.

По способу адресации операндов:

  1. С прямой адресацией

  2. С косвенной адресацией

  3. С абсолютной адресацией

  4. С относительной адресацией.

Команды передачи управления.

Это команды, управляющие порядком выполнения команд.

При естественном порядке после выполнения очередной команды выполняется команда, расположенная в следующей по порядку ячейке памяти. Обычно адрес команд хранится в специальном регистре – счетчике команд (СчК), содержимое которого после выполнения каждой команды автоматически увеличивается на «1», а если память имеет побайтовую адресацию, то на столько, сколько байт содержит текущая команда. (В этом случае приращение адреса команды составит lК ).

Естественный порядок выполнения команд может быть нарушен:

  1. Командами перехода (передачи управления).

  2. Командами замещения («Выполнение»).

  3. Сменой состояния программ.

  4. Запросами прерывания программы.

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

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

Различают два основных вида команд переходов:

  • команда безусловного перехода (БП)

  • команда условного перехода (УП)

  1. Команда безусловного перехода совершает переход всегда, независимо от каких – либо условий.

БП А

При этом следующей за командой БП выполняется команда, адрес которой указан в адресной части команды БП.

РГДОП

ОП

РГАОП

РГ К

БП А

СЧК

При этом : СЧ К : = РГ К [A]

СЧ К : = РГ К [A]

РГ АОП : = СЧ К

РГ ДОП : = ОП[РГ АОП ]

РГ К : = РГ ДОП

  1. Другим вариантом команды БП является переход по косвенному адресу (БПК).

БПК А

На косвенную адресацию указывает код операции команды. Управление передается команде, расположенной в ячейке, адрес которой указан в адресной части команды БПК. В этом случае выполняется следующая процедура:

РГ К

РГДОП

ОП

РГАОП

БПК А

СЧК

РГ АОП : = РГ К [A]

РГ ДОП : = ОП [ РГ АОП ]

СЧ К : = РГ ДОП

РГ АОП : = СЧ К

РГ ДОП : = ОП [ РГ АОП ]

РГ К : = РГ ДОП

  1. Третьим вариантом команды безусловного перехода является безусловный переход по смещению (БПС).

БПС В

В этом случае адрес следующей команды определяется как алгебраическая сумма текущего адреса команды БПС и смещения В, хранящегося в адресном поле команды БПС.

БПС В

РГ К

РГДОП

ОП

РГАОП

СЧК

СМ

СЧ К := СЧ К + РГ К[B]

РГ АОП : = СЧ К

РГ ДОП : = ОП[РГ АОП ]

РГ К : = РГ ДОП

  1. И, наконец, рассмотрим команду безусловного перехода по косвенному регистровому адресу (БПКР):

БПКР В

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

РГ К

РГДОП

ОП

РГАОП

БПКР R

РОН

СЧК

СЧ К := РОН [РГ К[R]]

РГ АОП : = СЧ К

РГ ДОП : = ОП [СЧ К]

РГ К : = РГ ДОП

  1. Команда безусловного перехода при относительной адресации (БПО).

БПО В D

В этом случае адрес следующей команды определяется как сумма содержимого регистра базы (В) и смещения (D). При этом в адресной части команды указывают адрес регистра общего назначения, используемого в качестве базового регистра, и само смещение.

БПО В D

РГ К

РГДОП

ОП

РГАОП

РОН

СЧК

СМ

СЧ К := РОН [В] +D

РГ АОП : = СЧК

РГ ДОП : = ОП[РГ АОП]

РГ К : = РГ ДОП

  1. В ряде ЭВМ используют команды безусловного перехода с относительной адресацией и индексированием (БПОИ).

БПОИ Х В D

При этом адрес перехода определяется как сумма содержимого регистров базы, индекса и смещения.

БПОИ Х В D

РГ К

РГДОП

ОП

РГАОП

РОН

СЧК

СМ

СЧ К := РОН [X] + РОН [В] +D

РГ АОП : = СЧ К

РГ ДОП : = ОП [РГ АОП]

РГ К : = РГ ДОП

  1. В ЭВМ со стековой памятью часто используют команду перехода по стеку (БПСТ). В этом случае адрес следующей команды сливают из стека и одновременно указатель стека (УС) уменьшают на «1». Команда БПСТ состоит только из кода операции.

СЧ К := СТЕК [УС]

РГ АОП : = СЧ К

РГ ДОП : = ОП[РГ АОП]

РГ К : = РГ ДОП

УС : = УС - 1

РГ К

РГДОП

ОП

РГАОП

БПСТ

УС

-1

СЧК

СТЕК

  1. Команды безусловного перехода по укороченному адресу (БПУ). В этом случае в адресной части команды БПУ указывают только младшую часть адреса следующей команды.

БПУ АМЛ

Полный адрес следующей команды получается путем приформировывания к АМЛ старшей части (АCТ) адреса. При этом старшая часть адреса обычно состоит из одних нулей, а в ЭВМ со страничной организацией АСТ принимается равной номеру текущей страницы. При этом команда БПУ позволяет адресовать любую команду текущей страницы. Для перехода на другую страницу надо использовать команду безусловного перехода с полным адресом (БП)

РГ К

РГДОП

ОП

РГАОП

БПУ АМЛ

СЧК

РГNСТР

«0»

СЧ К : = РГNСТР * АМЛ

РГ АОП : = СЧ К

РГ ДОП : = ОП [РГ АОП]

РГ К : = РГ ДОП

При работе с нулевой страницей:

СЧ К := АМЛ

РГ АОП : = СЧ К

РГ ДОП : = ОП [РГ АОП]

РГ К : = РГ ДОП

Подобная организация выбора адреса следующей команды позволяет обращаться из любой страницы к нулевой странице, не изменяя содержимого регистра номера страниц (РГNСТР). Для этого в старшую часть адреса необходимо занести «0». Это реализуется аппаратным методом – путем установки между РГNСТР и СЧ К и выполняется

СЧК

&

АМЛ

РГNСТР

с помощью специальной команды безусловного перехода с укороченной адресной частью (БПУО):

БПУО АМЛ

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