SS-«память-память»

Команда SS – самая длинная команда, ее длина – 48 двоичных разрядов, 6 байтов, или три машинных полуслова. Команда двухадресная, операнды находятся в ОП, результат помещается по месту 1-го операнда. В поле L указываются значения размеров полей ОП, закрепленных за операндами О1 и О2, в полях В1, В2 – номера РОН, в которых находятся значения их базовых адресов, в полях D 1, D2 – значения смещений относительно базовых адресов соответственно 1 и 2-го операндов. Команды формата SS используются для выполнения арифметических и логических операций над переменными, объявленными в форматах «Р», «H», «F», «E», «D» и др.

Задание 5. Используя формат команды SS, заполнить поля команды информацией в 16-ой СС и представить внутреннее содержимое использованных РОН и полей ОП до и после выполнения операции. КОП = FA – операция сложения целых десятичных чисел, представленных в форме с фиксированной запятой (формат «Р»). Для представления значений операндов использовать поля ОП длиной по два байта, соответственно L = 2 . Значение 1-го операнда О1 = +5610, значение 2-го операнда О2 = +3410. Базовые адреса 1 и 2-го операндов В1 = 00АА000016, В2 = 00ЕЕ000016, смещения операндов относительно базовых адресов D1 = 60016, D2 = 90016. После выполнения операции результат помещается по месту 1-го операнда.

Этапность выполнения задания 5:

1. Записать 16-ричное представление полей машинной команды:

F A 0 2 6 0 0 9 0 0

0 7 8 15 16 23 24 31 32 35 36 47

2. Выполнение операции сложения сводится к следующим действиям: значения 1 и 2-го операндов суммируются. Результат операции РЗ = 9010 помещается в ОП на место 1-го операнда.

3. Содержимое РОН с номерами 2 и 3, в которых находятся значения базовых адресов 1 и 2-го операндов до и после выполнения операции в 16-ричной СС приведено на рис. 7.10.

 

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

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

     
АА АА
ЕЕ   ЕЕ
                 
                 
               
               
                   
        A         A
        B         B
        C         C
        D           D
        E         E
        F         F

 

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

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

4. Исполнительный адрес 1-го операнда определяется по формуле (7.4) и будет иметь значение:

А1 = 00АА000016 + 60016 = 00АА060016 .

Исполнительный адрес второго операнда определяется также по формуле (7.4) и будет иметь значение:

А2 = 00ЕЕ000016 + 90016 = 00ЕЕ090016.

 

5. Содержимое полей ОП, закрепленных за 1 и 2-м операндами
до и после завершения выполнения машинной команды представлено на рис. 7.11.

 

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

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

 

               
       
               
     
   
1-й операнд 0 5 6 С 00A00600 00A00A01 1-й операнд 0 9 0 С 00A00600 00A00601  
     
     
         
   
2-й операнд 0 3 4 С 00A00900 00A00901 2-ой операнд 0 3 4 С 00A00900 00A00901  
         
 
   
     
   
   
  FFFFFFFF FFFFFFFF  
         
                           

 

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

 

На основании подробного рассмотрения 5 форматов машинных команд, можно сделать выводы о том, что ассемблированная форма представления «управляющей информации» для 32-, 64-разрядных машин идентична ассемблерам, которые используются в 16-разрядных микроконтроллерах. Причем у 16-разрядных микроконтроллеров может быть значительно больший по объему набор команд (до 256). Инвариантность «форматов команд» по отношению к емкости основной памяти обеспечивается за счет использования относительной адресации. При таком способе адресации предельный объем памяти определяется исходя из максимально возможных значений базовых адресов.

В современных 32-разрядных ЭВМ выборка машинных команд из памяти в центральный процессор осуществляется порциями по 2 байта. Применение команд различных форматов, в особенности с короткими адресами, относящимися к регистровой памяти, кроме отмеченного выше сокращения частоты обращения к основной памяти, способствует уменьшению объемов программ и экономии адресного пространства ОП.