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.

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

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

                     
СЕ Е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. Содержимое ОП до и после выполнения машинной команды

Наши рекомендации