SI – «память – непосредственный операнд»

Команда одноадресная, в адресной части размещаются поля В1 и D1, по содержимому которых осуществляется определение поля ОП, в котором находится значение 1-го операнда. В отличие от других машинных команд в данной машинной команде заниматься определением адреса 2-го операнда нет необходимости. Значение 2-го операнда находится в поле I2, т.е. 2-й операнд находится не в ОП или РОН, а в самой команде. Результат выполненной машинной команды помещается по адресу 1-го операнда А1, который определяется по формуле

А1 = [В1] + D1 (3.5)

Можно привести практический пример использования этой команды: если при наборе текста в текстовом редакторе обнаруживается ошибка в каком-то слове, исправление сводится к замене одной буквы на другую, т.е. вместо буквы «а» необходимо поставить букву «и». В. С точки зрения внутри машинного представления информации необходимо поменять содержимое байта ОП, в котором находится значение символа «а» в коде ДКОИ, на значение символа «и», что фактически эквивалентно записи значения I2 (двоичного представления символа «и» в коде ДКОИ) в однобайтное поле ОП с адресом А1, в котором до выполнения команды находилось двоичное представление символа «а». Для машинных команд формата SI характерно выполнение команд «пересылка непосредственная»

(КОП = MVI). Вполне очевидным является факт однобайтности операндов, поскольку поле I2 имеет фиксированную длину восемь двоичных разрядов. Такими параметрами обладают только символьные и логические переменные.

Задание 4. Используя формат команды SI, заполнить поля команды информацией, представленной в 16-ричной СС, и представить внутреннее содержимое использованных РОН и полей ОП до и после выполнения операции. КОП=92 – операция записи содержимого поля I2= 02 в байт ОП с адресом А1 = (В1) + D1= 00А0000016 + 50016 = 00А0050016, где В1 = 4, (В1) = 00А0000016, смещение 1-го операнда относительно базового D1 = 500.

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

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

     
 
А0 А0
                 
                 
          --           --
        F             F

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

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

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

9 2 5 0 0

0 7 8 1112 1516 2324 31

2. Выполнение операции сводится к следующим действиям: содержимое разрядов с 8-го по 15-й машинной команды должно быть записано в байт ОП с номером или адресом А1 = 00А0050016 .

3. В соответствии с правилами внутри машинного представления, представить содержимое РОН с номером 4, являющегося базовым для 1-го операнда, до и после выполнения операции в 16-ричной СС (рис. 3.8).

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

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

               
       
                 
     
    1-й операнд 0 2 00A00500   1-й операнд 0 2 00A00500  
  0 0 00A00501   0 0 00A00501  
0 0 00A00502   0 0 00A00502  
  0 0 00A00503     0 0 00A00503  
0 0 00A00504 0 0 00A00504  
         
     
         
    FFFFFFFF FFFFFFFF  
         
                           

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

4. Содержимое поля ОП, закрепленное за 1-м операндом, с адресом А1 = 00А0050016 до и после выполнения выполнения машинной команды представлено на рис. 3.9.

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-ричной СС приведено на рис. 3.10.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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