Последната
актуализация
на този
раздел е от 2020
година.
§ 5.2
Методи за
адресиране
Този
параграф е
едно
продължение
на темата за
адресната
част на
машинната
команда. Тази
тема е много
богата и
свързана с
множество
софтуерни и
хардуерни
проблеми на
процесора,
които трябва
да бъдат
изяснени. Както
беше
показано на фигура 5.1.2,
адресната
част на
командата се
състои
от две
подполета - “Поле 2”, в
което се
посочват кои
са
операндите
на операцията
и “Поле 3”,
в което се
посочва коя
да бъде
следващата машинна
команда.
Както
операндите,
така и командите
(като текст
на
програмите),
се намират в
оперативната
памет на
процесора,
което е следствие
от принципа
за програмно
управление.
Достъпът до
необходимите
данни командата
получава
чрез
съответния
адрес - адрес на
операнд или
адрес на
команда. В
този смисъл
съдържанието
на “Поле2” и
“Поле 3”
представлява
адреси.
Ето защо,
тази част от
структурата
на машинната
команда, се
нарича адресна. В
зависимост
от
адресността
на командата,
адресите
могат да
бъдат
няколко или
да липсват и
в тази връзка
трябва
веднага да
бъде
отбелязано,
че
примерните
структури на
машинните
команди,
които ще
бъдат давани
тук в
следващите
пунктове, за
простота, без
загуба на
общността, ще
се отнасят за
едноадресни
команди.
Записаното
в адресната
част на
командата
може да се
използува пряко
по смисъл, но
може и да се
интерпретира,
т.е. адресите
могат да се
изобразяват явно
или неявно.
Ето защо тук
ще се
използуват
още понятията
изпълнителен
адрес и адресен
код.
Изпълнителен
адрес се
нарича двоичната
комбинация,
която в
крайна
сметка се зарежда
в адресния
регистър на
оперативната
памет, т.е.
това е истинският
(действителният
или още абсолютният)
адрес на
клетката от
паметта, в
която се намира
(или от която
започва)
операндът.
Това положение
е изразено
по-долу на
фигура 5.2.1,
рисунка А).
Фиг. 5.2.1. Схема
на мястото на
адресните
понятия
Адресен
код се
нарича
някаква
двоична
информация,
отнасяща се
за адреса на
посочваната
клетка. Адресният
код съдържа в
себе си указател
и начални
данни –
списъкът от
елементите
<Sp.,Reg.,Const>, показан
в адресната
част на
командата на
фигура 5.2.1,
рисунка Б).
Указателят (Sp)
показва определен
начин (един
от
възможните)
за преработка
на началните
данни (Reg.,Const.).
Началните данни
се намират в
регистровата
памет (РП) на
процесора.
Отделните
функционалности,
според които
се извършва
споменатата
преработка,
включително
и случая,
когато тя
фактически
липсва, се
наричат методи за
адресиране.
В
резултат на
преработката,
с други думи
на метода за
адресиране,
се получава
изпълнителният
адрес d.
Когато
адресът е
неявен,
адресният
код не може
да се зареди
в адресния
регистър на
оперативната
памет, тъй
като не може
да се
използува
непосредствено
в качеството
му на
истински
адрес, а трябва
да се
преработи. За
целта в
структурата
присъства
хардуерният
преобразовател
Пр..
Указателят
за
преработка
на началните
данни
представлява
спецификатор
на метод за
адресиране.
Този
спецификатор
може да бъде явен
или
неявен.
Когато той не
присъства в
адресната
част на
машинната
команда, той
е неявен. В
този случай
методът за
адресиране
се определя
по
подразбиране,
от кода на
операцията
(КОП), т.е. чрез
операционната
част на
командата.
Когато
методът за
адресиране
се декларира
чрез КОП,
системата от
машинни
команди съответства
на онази,
която
определихме
като канонична
(вижте съответното
определение).
В такива
системи
адресната
част на
командите не
притежава
функционална
самостоятелност
по отношение
на КОП. Това
усложнява
командната
система,
което пък
води до
усложняване
на
формирането
на машинния
код на
програмите
от
компилаторите.
Когато
указателят
на метода за
адресиране е
явен, той
присъства
явно в
адресната
част на
машинната
команда,
заедно с
началните данни.
В такива
случаи,
системата от
машинни
команди
съответства
на онази,
която определихме
като ортогонална
или още симетрична
(вижте
съответното определение).
В такива
системи полетата за
КОП и операнд
са
функционално
независими.
Този метод за
изразяване
на адресите
позволява да
се създават
командни
системи, чието
интерпретиране
е по-лесно,
което от своя
страна
облекчава
процеса на
формиране на
машинния код
на програмите
от
компилаторите.
Изясняването на начините за преработка на адресната част на командата, с цел получаване на изпълнителния адрес, означава изясняване на алгоритъма и апаратурата за реализация. И както отбелязахме в началото, това следва да се отнася както за достъп до клетки, в които се съдържат операндите на командата, така и за достъп до клетки, от които следва да се извлече следващата команда. Това ни дава правото да разглеждаме методите за адресиране от две различни гледни точки, свързани с вида на извличаната от паметта информация. Така тук, в тази книга, в следващите раздели ще разгледаме:
1. Методи за адресиране на операнди ;
2. Методи за адресиране на команди .
Следващият
раздел е:
5.2.1
Методи за
адресиране
на операндите