RX - «регистр–индексный регистр»

Команды формата RX имеют длину 4 байта, двухадресные, предназначены выполнения операций над переменными типа массив. 1-й операнд размещается в РОН по адресу, который находится в поле R1, адрес 2-го операнда определяется по формуле:

А2 = [В2] + [Х2] + D2 , (7.1)

где В2 – номер РОН, в котором находится значение базового адреса, Х2 –номер РОН, в котором находится значение индекса переменной, определяемое по формуле

Х2 = L*I (7.2)

где L – длина переменной в байтах, I – номер элемента в массиве (для одномерного массива), D2 – абсолютное значение смещения 0-го элемента массива относительно базового адреса, т. е. фактически получается, что выражение

[В2] + D2 (7.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-й операнд, определяется по формуле (7.1). Результат помещается по адресу первого операнда в регистр общего назначения с номером 1.

3. Представить в 16-ричной СС значения О1, О2 и результата РЗ:

О1=+686210=+8АСЕ16, О2=+356210=+ D ЕА16, РЗ=+330010=+СЕ416

4. В соответствии с правилами внутри машинного представления чисел в формате «F» представить содержимое используемых РОН до и после выполнения операции в 16-ричной СС (рис. 7.4).

5. Исполнительный адрес 2-го операнда определяется по формуле 7.1 и будет иметь значение

А2(4) =00АЕА00016+40016+1016=00АЕА41016.

6. Адрес байта поля ОП, начиная с которого размещается 0-й элемент массива 2-й переменной, определяется по формуле 7.3 и будет иметь значение

А2(0)= 00АЕА00016+40016=00АЕА400.

 

До выполнения После выполнения

машинной команды машинной команды

 

                     
СЕ Е4
АЕ А0   АЕ А0
               
                 
                 
               
               
                   
        A         A
        B         B
        C         C
        D           D
        E         E
        F         F

 

 

Рис. 7.4. Содержимое РОН до и после выполнения

машинной команды

 

7. Содержимое поля ОП, в котором размещается 2-й операнд, будет неизменным после завершения выполнения машинной команды (рис. 7.5).

 

 

До выполнения После выполнения

машинной команды машинной команды

 

             
     
             
   
 
    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
     
                             

 

 

Рис. 7.5. Содержимое ОП до и после выполнения машинной команды

 

Анализ содержимого полей ОП, в которых размещаются значения 0, 1 и 3-го элементов переменной типа «массив» А2, дает основание сделать выводы о том, что 0, 1 и 3-й элементы являются отрицательными числами, так как в знаковых разрядах находится «1», элементы 2 и 4-й являются положительными числами, поскольку их знаковые разряды имеют значение «0». 4-й элемент массива, выступающий в данной операции в качестве 2-го операнда, после завершения операции своего значения не меняет. В заключение можно отметить, что формат RX – единственный, который может работать с индексными переменными.