Форматы команд 32–х разрядных ЭВМ
Усложнение логической организации машин 3-его поколения, наличие большого количества форматов данных, 2-х типов запоминающих устройств ОП и СОП, использование абсолютной и относительной адресации, одно, двух и трехадресных команд, явилось следствием появления 5-ти типов машинных команд. Форматы команд, их условное обозначение и структуры представлены в табл. 3.1.
Таблица 3.1
Усл. обозначе-ние фор- мата | Название машинной команды | Формат и структура команды | Значение 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 |
Форматы команд 32-х ЭВМ
В графе 3 таблицы приведены форматы и структуры машинных команд. Используемые условные обозначения полей в машинных форматах повторяются. В разрядах с 0-го по 7-й размещается 8-разрядный код операции (КОП). В самых левых разрядах, 0 и 1-м, находится двухбитный код длины машинной команды (графа 4) (табл. 3.1).
Поскольку каждый формат имеет фиксированную длину, то при прочтении информации, содержащейся в 0 и 1-м разрядах, в блоке управляющих регистров центрального процессора осуществляется определение длины машинной команды. Из табл. 3.1 следует, что для внутри машинного представления машинных команд используются поля, состоящие из целого количества байт, кратного двум или машинному полуслову . После считывания первых двух байтов и анализа значений 0 и 1-го разрядов, схемам процессора, управляющим выборкой команд из ОП, становится известно, сколько еще пар байтов необходимо считать в регистр команд, чтобы зафиксировать в нем машинную команду, которая должна выполняться процессором в данный момент времни: если в 0 и 1-м разрядах – 00, то это – команда RR и больше ничего не надо считывать, если- 01 или -, то это – одна из команд RX, RS, SI и необходимо считать еще следующие 2 байта из ОП, если в 0 и 1-м разрядах – 11, то процессор получает информацию о том, что из ОП необходимо считать еще два раза по 2 байта, чтобы выбрать команду SS из памяти полностью. При помощи восьми разрядов поля КОП осуществляется кодировка следующей информации: в правых четырех битах – разряды с 0-го по 3-й – содержится код группы команд для определенного типа формата данных или управления, в левых четырех битах – разряды с 4-го по 7-й – находится номер команды в группе. Развернутая система машинных команд ЭВМ 3-го и 4-го поколений содержит 176 различных машинных команды при потенциальных возможностях восьмиразрядного двоичного КОП- 256 (Приложение 1).
Индексы условных обозначений остальных полей соответствуют номерам операндов, следовательно, команды 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-ричной интерпретации команд машинно-ориентированного языка программирования Ассемблера приведен в Приложении 1.
Для размещения машинной программы операционной системой выделяется один или несколько стандартных блоков ОП, координаты которых задаются при помощи базовых адресов. Поскольку в качестве альтернативного размещения данных при рассмотрении машинных команд появилось такое запоминающее устройство, как СОП, или РОН, то необходимо по всем форматам данных сформулировать правила их размещения в РОН.
Форматы «С» и «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-й записываются разряды дополнительного кода числа.
Учитывая отсутствие достаточного количества общедоступной литературы, связанной со спецификой «управляющей информации», целесообразно подробно рассмотреть практические примеры для каждого формата машинных команд. В примерах необходимо рассмотреть содержимое ОП и СОП до начала выполнения машинной команды и после ее выполнения.
RR –« регистр-регистр»
Длина команды 16 двоичных разрядов или полуслово. R1, R2 – номера РОН, в которых находятся соответственно 1-ый и 2-ой операнды. Результат операции записывается в регистр общего назначения, адрес которого находится в поле R1.
Задание 1. Используя формат команды RR, заполнить поля команды информацией, представленной в 16-ой СС и представить внутреннее содержимое использованных РОН до и после выполнения операции. КОП=1А-операция сложения чисел, представленных в форме с фиксированной запятой (формат F ), R1=3, R2=4, О1=+32410 – значение первого операнда, О2=+30010- значение второго операнда.
Этапность выполнения Задания 1:
1. Записать 16-ое представление полей машинной команды:
1 А |
0 7 8 11 12 15
2. Представить в 16-ой СС значения О1, О2 и результата РЗ:
О1=+32410=14416 , О2=+30010=12С16 , РЗ=62410=27016
3. В соответствии с правилами внутри машинного представления чисел в формате F, представить содержимое используемых РОН до и после выполнения операции в 16- ой СС (Рис.3.3). Номера РОН располагаются справа от самих регистров и имеют значения от 0 до F в 16-ой СС. Сами РОН развернуты в виде 4-х байтов и их содержимое представлено двумя 16-ми цифрами.
Содержимое РОН до выполнения Содержимое РОН после выполнения
машинной команды. машинной команды.
2C | 2C | ||||||||||||
A | A | ||||||||||||
B | B | ||||||||||||
C | C | ||||||||||||
D | D | ||||||||||||
E | E | ||||||||||||
F | F | ||||||||||||
Рис.3.3.Содержимое РОН до и после выполнения машинной команды.