logo
AOM / Мельник А

3.4.2. Пряма адресація

При прямій (або абсолютній) адресації в адресному полі прямо вказується місце роз­міщення операнда, тобто виконавча адреса операнда. При цьому можливі два випадки: пряма адресація основної пам'яті ОП, та пряма адресація регістрів регістрового файлу процесора.

В першому випадку адреса А комірки основної пам'яті із адресної частини АЧ ко­манди поступає на адресні входи основної пам'яті ОП (рис. 3.23 а) і у вказану комірку в режимі запису записується операнд із регістра даних РгД, а в режимі зчитування зчиту­ється операнд в регістр даних РгД.

В другому випадку адреса R регістра регістрового файлу процесора із адресної частини АЧ команди поступає на адресні входи регістрового файлу процесора (рис. 3.23 b), і у вка­заний регістр в режимі запису записується операнд із регістра даних РгД, а в режимі зчитування зчитується операнд в регістр даних РгД.

109

Якщо основна пам'ять може зберігати М слів, то, використовуючи двійкове кодуван­ня, необхідно mбіт для представлення адрес всіх комірок пам'яті, де m=]logM[.Зна­чення в дужках означає більше ціле. Якщо регістровий файл має N регістрів, то, вико­ристовуючи двійкове кодування, необхідно n біт для представлення адрес всіх регістрів, де n=]logN[.Оскільки число регістрів значно менше кількості комірок пам'яті, то і роз­рядність адреси для їх адресації буде значно меншою, а відповідно значно меншою буде і розрядність команди в цілому. Нехай для прикладу кількість виконуваних в комп'ютері команд рівна 256, тобто розрядність коду операції рівна 8 бітів, ємність основної пам'яті рівна 1ГБ, тобто розрядність адреси рівна ЗО бітів, а кількість регістрів регістрового фай­лу процесора рівна 64, тобто розрядність адреси рівна 6 бітів. На рис. 3.24 показано формати двоадресних команд при прямій адресації основної пам'яті та регістрового файлу про­цесора для наведеного прикладу.

Як видно з рисунка, в першому випадку розрядність команди рівна 68 бітів, тоді як в другому випадку розрядність команди рівна 20 бітів, тобто менша в 3,4 рази.

Для того, щоб розпізнати який тип пам'яті адресується - основна пам'ять чи регі­стровий файл процесора, до команди вводиться спеціальне поле типу пам'яті ТП, як це показано на рис. 3.25.