Форматы команд 32-разрядных ЭВМ

Усложнение логической организации машин 3-го поколения, наличие большого количества форматов данных, двух типов запоминающих устройств ОП и СОП, использование абсолютной и относительной адресации, одно-, двух- и трехадресных команд явились следствием появления пяти типов машинных команд. Форматы команд, их условные обозначения и структуры представлены в табл. 7.1.

Таблица 7.1

Форматы команд 32-х ЭВМ

Усл. обозначе-ние фор- мата   Название машинной команды   Формат и структура команды Значение 0 и 1-го разрядов КОП
       
RR Регистр–регистр КОП R1 R2
 
 


0 7 8 11 12 15

 
  RX   Регистр–индексный регистр КОП R1 X2 B2 D2
 
 


0 7 8 1112 1516 19 20 31

 
  RS   Регистр–память КОП R1 R3 B2 D2
 
 


0 7 8 1112 1516 19 20 31

 
  SI   Память–непосред- ственный операнд   КОП I2 B1 D1
 
 


0 7 8 15 16 19 20 31

 
  SS   Память–память   КОП L B1 D1 B2 D2
 
 


0 7 8 15 16 19 20 31 32 3540 47

 

В графе 3 таблицы приведены форматы и структуры машинных команд. Используемые условные обозначения полей в машинных форматах повторяются. В разрядах с 0-го по 7-й размещается 8-разрядный код операции (КОП). В самых левых разрядах, 0 и 1-м, находится двухбитный код длины машинной команды (графа 4) (табл. 7.1).

Поскольку каждый формат имеет фиксированную длину, то при прочтении информации, содержащейся в 0 и 1-м разрядах, в блоке управляющих регистров центрального процессора осуществляется определение длины машинной команды. Из табл. 7.1 следует, что для внутри машинного представления машинных команд используются поля, состоящие из целого количества байт, кратного двум или машинному полуслову. После считывания первых двух байтов и анализа значений 0 и 1-го разрядов, схемам процессора, управляющим выборкой команд из ОП, становится известно, сколько еще пар байтов необходимо считать в регистр команд, чтобы зафиксировать в нем машинную команду, которую предстоит выполнять процессору: если в 0 и 1-м разрядах – 00, то это – команда RR и больше ничего не надо считывать, если- 01 или -10, то это – одна из команд RX, RS, SI и необходимо считать еще следующие 2 байта из ОП, если в 0 и 1-м разрядах – 11, то процессор получает информацию о том, что из ОП необходимо считать еще два раза по 2 байта, чтобы выбрать команду форматаSS из памяти полностью. При помощи восьми разрядов поля КОП осуществляется кодировка следующей информации: в правых четырех битах – разряды с 0-го по 3-й – содержится код группы команд для определенного типа формата данных или управления, в левых четырех битах – разряды с 4-го по 7-й – находится номер команды в группе. Развернутая система машинных команд ЭВМ 3-го и 4-го поколений содержит 176 различных машинных команды при потенциальных возможностях восьмиразрядного двоичного КОП- 256 (приложение 3).

Индексы условных обозначений полей соответствуют информации, по которой будут определяться адреса операндов. Следовательно, команды RR, RX, SS являются 2- адресными, а команда RS – 3-адресной, SI – одноадресной, так как в поле I2 находится не информация для определения адреса 2-го операнда, а его непосредственное значение. Поля, обозначенные буквой R, обозначают, что местом нахождения операндов являются регистры РОН, а сами значения полей соответствуют номерам РОН, в которых размещаются операнды. Буквами В1 и В2 обозначаются поля, где содержатся номера РОН, в которых соответственно находятся значения базовых адресов 1 и 2-го операндов. В полях D1 и D2 находятся абсолютные значения смещений 1 и 2-го операндов относительно базовых адресов, записанные в 16-тиричной СС. В поле L команды SS указывается длина операндов, адреса которых определяются при помощи содержимого регистра В1 и смещения D1- для первого операнда и содержимого регистра В2 и значения смещения D2- для второго операнда. Команда RR имеет наименьшую длину – 2 байта, или полуслово; RX, RS, SI – 4 байта (одно машинное слово); SS – 6 байт (1,5 машинных слова). Поля R1, R2, R3, В1, В2 имеют длину четыре двоичных разряда, что является достаточным для указания номера РОН. Поля D1, D2 имеют длину 12 двоичных разрядов, 3 тетрады, что достаточно, чтобы зафиксировать значение смещения младшего байта поля ОП, закрепленного за переменной относительно базового адреса, которое может принимать значение от 00016 до FFF16. Среди форматов только одна команда RS трехадресная. Команды RR, RХ, SS – двухадресные, команда SI – одноадресная. Полный набор мнемокодов и 16-ричной интерпретации команд машинно-ориентированного языка программирования Ассемблера приведен в приложении 3.

Для размещения машинной программы операционной системой выделяется один или несколько стандартных блоков ОП, координаты которых задаются при помощи базовых адресов. Поскольку в качестве альтернативного размещения данных при рассмотрении машинных команд появилось такое запоминающее устройство, как СОП, или РОН, то необходимо по всем форматам данных сформулировать правила их размещения в РОН.

Форматы «С» и «P» являются форматами переменной длины, для их представления в СОП могут использоваться либо 4-байтные РОН, либо 8-байтные, спаренные РПЗ. Размещение в СОП переменных, объявленных в форматах «F» и «E», сводится к закреплению за ними одного из регистров РОН, причем для формата «F» регистрация знака осуществляется в 0-м бите, а мантиссы в виде дополнительного кода в разрядах с 1-го по 31-й, для формата «E» регистрация знака числа осуществляется в 0-м бите, характеристики числа – в разрядах с 1-го по 7-й, мантиссы в разрядах с 8-го по 31-й.

Размещение переменных, объявленных в формате «D», осуществляется аналогично формату «E» в одном из спаренных регистров РПЗ с номерами 0, 2, 4, 6 с той лишь разницей, что для мантиссы отводятся разряды с 8-го по 31-й младшего регистра и разряды с 0-го по 31-й старшего регистра. Для переменных, объявленных в формате «H», в разрядах с 0-го по 15-й РОН записываются «0», в 16-м разряде регистрируется знак числа, а с 17-го по 31-й записываются разряды дополнительного кода числа.

Учитывая отсутствие достаточного количества общедоступной литературы, связанной со спецификой «управляющей информации», целесообразно подробно рассмотреть практические примеры для каждого формата машинных команд. В примерах необходимо рассмотреть содержимое ОП и СОП до начала выполнения машинной команды и после ее выполнения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: