RX - «регистр–индексный регистр»
Команды формата RX имеют длину 4 байта, двухадресные, предназначены выполнения операций над переменными типа массив. 1-й операнд размещается в РОН по адресу, который находится в поле R1, адрес 2-го операнда определяется по формуле:
А2 = [В2] + [Х2] + D2 , (3.1)
где В2 – номер РОН, в котором находится значение базового адреса, Х2 –номер РОН, в котором находится значение индекса переменной, определяемое по формуле:
Х2 = L*I (3.2)
где L – длина переменной в байтах, I – номер элемента в массиве (для одномерного массива), D2 – абсолютное значение смещения 0-го элемента массива относительно базового адреса, т. е. фактически получается, что выражение
[В2] + D2 (3.3)
определяет байт ОП, начиная с которого осуществляется размещение 2-й переменной типа «массив» в ОП. Результат операции РЗ помещается на место 1-го операнда в РОН.
Задание 2. Используя формат команды RX, заполнить поля команды информацией, представленной в 16-ричной СС и представить внутреннее содержимое использованных РОН и полей ОП до и после выполнения операции. КОП = 5В – операция вычитания чисел, представленных в форме с фиксированной запятой, формат «F», R1=1, В2=2. Значение первого операнда О1 = +686210, значение второго операнда, который является элементом массива с номером 4, О2 = +356210. Содержимое Х2 должно быть равно 4*4 = 1610 = 1016.
Этапность выполнения задания 2:
1. Записать 16-ричное представление полей машинной команды:
5 В | 4 0 0 |
0 7 8 1112 1516 1920 31
2. Выполнение операции вычитания сводится к следующим действиям: из значения операнда, который находится в 1-м регистре общего назначения, вычесть значение операнда, являющегося 4-м элементом переменной типа «массив», объявленной в формате «F». Адрес младшего байта поля ОП, в котором размещается 2-й операнд, определяется по формуле (3.1). Результат помещается по адресу первого операнда в регистр общего назначения с номером 1.
3. Представить в 16-ричной СС значения О1, О2 и результата
РЗ:
О1=+686210=+8АСЕ16, О2=+356210=+DЕА16,
РЗ=+330010=+СЕ416
4. В соответствии с правилами внутри машинного
представления чисел в формате «F» представить содержимое
используемых РОН до и после выполнения операции в 16-
ричной СС. Номера РОН располагаются справа от самих
регистров и имеют значения от 0 до F в 16-ричной СС. Сами
РОН развернуты в виде 4 байтов и их содержимое
представлено 16-ричными цифрами (рис. 3.4).
5. Исполнительный адрес 2-го операнда определяется по
формуле 2.1 и будет иметь значение
А2(4) =00АЕА00016+40016+1016=00АЕА41016.
6. Адрес байта поля ОП, начиная с которого размещается 0-й
элемент массива 2-й переменной, определяется по формуле 3.3
и будет иметь значение
А2(0)= 00АЕА00016+40016=00АЕА400.
До выполнения После выполнения
машинной команды машинной команды
8А | СЕ | 0С | Е4 | |||||||||
АЕ | А0 | АЕ | А0 | |||||||||
A | A | |||||||||||
B | B | |||||||||||
C | C | |||||||||||
D | D | |||||||||||
E | E | |||||||||||
F | F |
Рис. 3.4. Содержимое РОН до и после выполнения
машинной команды
7. Содержимое поля ОП, в котором размещается 2-й операнд,
будет неизменным после завершения выполнения машинной
команды (рис. 3.5).
Анализ содержимого полей ОП, в которых размещаются значения 0, 1 и 3-го элементов переменной типа «массив» А2, дает основание сделать выводы о том, что 0, 1 и 3-й элементы являются отрицательными числами, так как в знаковых разрядах находится «1», элементы 2 и 4-й являются положительными числами, поскольку их знаковые разряды имеют значение «0». 4-й элемент массива, выступающий в данной операции в качестве 2-го операнда, после завершения операции своего значения не меняет. В заключение
До выполнения После выполнения
машинной команды машинной команды
0-й элемент массива | F F | 00АЕА410 | 0-й | F F | 00АЕА410 | |||||||||
F F | 00АЕА411 | элемент | F F | 00АЕА411 | ||||||||||
F F | 00АЕА412 | массива | F F | 00АЕА412 | ||||||||||
9 1 | 00АЕА413 | 9 1 | 00АЕА413 | |||||||||||
1-й элемент массива | F F | 00АЕА414 | 1-й | F F | 00АЕА414 | |||||||||
F F | 00АЕА415 | элемент массива | F F | 00АЕА415 | ||||||||||
F 0 | 00АЕА416 | F 0 | 00АЕА410 | |||||||||||
5 7 | 00АЕА417 | 5 7 | 00АЕА410 | |||||||||||
2-й элемент массива | 0 0 | 00АЕА418 | 2-й элемент массива | 0 0 | 00АЕА410 | |||||||||
0 0 | 00АЕА419 | 0 0 | 00АЕА410 | |||||||||||
F D | 00АЕА41A | F D | 00АЕА410 | |||||||||||
A 9 | 00АЕА41B | A 9 | 00АЕА410 | |||||||||||
3-й элемент массива | F F | 00АЕА41C | 3-й элемент массива | F F | 00АЕА410 | |||||||||
F F | 00АЕА41D | F F | 00АЕА410 | |||||||||||
D B | 00АЕА41E | D B | 00АЕА410 | |||||||||||
A 5 | 00АЕА41F | A 5 | 00АЕА410 | |||||||||||
4-й элемент массива | 0 0 0 0 0 D E A | 00АЕА420 00АЕА421 00АЕА422 00AEA423 | 4-й элемент массива | 0 0 0 0 0 D E A | 00АЕА420 00АЕА421 00АЕА422 00АЕА423 | |||||||||
FFFFFFFF | FFFFFFFF | |||||||||||||
Рис. 3.5. Содержимое ОП до и после выполнения машинной команды
можно отметить, что формат RX – единственный, который может работать с индексными переменными.
RS – «регистр–память»
Команды формата RS имеют длину 4 байта, трехадресные, предназначены для выполнения арифметических операций над переменными в любых числовых «форматах данных». Среди команд формата RS есть команды передачи управления, логические операции, команды сдвига слова влево, арифметического сдвига двойного слова влево и т. д. В командах формата RS 1-й операнд размещается в РОН, адрес которого находится в поле R1, адрес 2-го операнда определяется по формуле
А2= [В2] + D2 (3.4)
где В2 – номер РОН, в котором находится значение базового адреса 2-го операнда, D2 – абсолютное значение смещения младшего байта поля ОП, закрепленного за 2-м операндом, относительно базового адреса. Результат операции РЗ помещается в РОН, номер которого находится в поле R3 машинной команды.
Задание 3. Используя формат команды RS, заполнить поля команды информацией, представленной в 16-ричной СС, и представить внутреннее содержимое использованных РОН и полей ОП до и после выполнения операции. КОП = AF – операция вычитания чисел без нормализации, представленных в форме с плавающей запятой (формат «D»), R1 = 0, R3 = 2, В2 = 4.Значение первого операнда О1 = +27210, значение второго О2 = +13810. Смещение 2-го операнда относительно базового D2 = А00.
Этапность выполнения задания 3:
1. Записать 16-ое представление полей машинной команды:
A F | A 0 0 |
0 7 8 11 12 1516 2324 31
2. Выполнение операции вычитания сводится к следующим действиям: из значения операнда, который находится в 0-м регистре общего назначения, вычесть значение операнда, который находится 8-ми байтном поле ОП, адрес которого определяется по формуле (3.4). Результат операции помещается в РПЗ с номером 2.
3. Представить в 16-ричной СС значения О1, О2 и результата РЗ:
О1 = +27210= 11016, О2 = +13810 = +8А16, РЗ = 13410 = +8616.
4. В соответствии с правилами внутри машинного представления чисел в формате «D» представить содержимое используемых РПЗ, имеющих четные номера 0 и 2, до и после выполнения операции в 16-ричной СС (рис. 3.6).
До выполнения После выполнения
машинной команды машинной команды
А0 | А0 | |||||||||||
A | A | |||||||||||
B | B | |||||||||||
C | C | |||||||||||
D | D | |||||||||||
E | E | |||||||||||
F | F |
Рис. 3.6. Содержимое РОН до и после выполнения машинной команды
5. Исполнительный адрес 2-го операнда определяется по формуле (7.3) и будет иметь значение
А2 = 00А0000016 + А0016 = 00А00А0016.
6. Содержимое поля ОП, в котором размещается 2-й операнд, будет неизменным после завершения выполнения машинной команды (рис. 3.7).
До выполнения После выполнения
машинной команды машинной команды
4 2 | 00A00A00 | 4 2 | 00A00A00 | |||||||||||
8 A | 00A00A01 | 8 A | 00A00A01 | |||||||||||
0 0 | 00A00A02 | 0 0 | 00A00A02 | |||||||||||
2-й операнд | 0 0 | 00A00A03 | 2-й операнд | 0 0 | 00A00A03 | |||||||||
0 0 | 00A00A04 | 0 0 | 00A00A04 | |||||||||||
0 0 | 00A00A05 | 0 0 | 00A00A05 | |||||||||||
0 0 | 00A00A06 | 0 0 | 00A00A06 | |||||||||||
0 0 | 00A00A07 | 0 0 | 00A00A07 | |||||||||||
FFFFFFFF | FFFFFFFF | |||||||||||||
Рис. 3.7. Содержимое ОП до и после выполнения машинной команды