Способи адресації пам'яті: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Рядок 11:
[[Зображення:VAXoperation.PNG|thumb|350px|right|Формат двохоперандної команди архітектури VAX. Поля "режим" визначають режим адресації, поля "регістр" - номери задіяних регістрів]]
Інформація про операнд міститься в його специфікаторі, формат якого варіюється, але для більшості методів адресації складається з полів «регістр» і «режим». Тобто, режим адресації задається полем «режим», а номер задіяного регістра міститься у полі «регістр». В режимі адресації по зсуву, в команді після полів режиму й регістра, з’являється додаткове поле із зазначенням величини самого зсуву. В режимі масштабування також застосовується розширення команди й у додатковому полі знаходиться специфікатор для третього задіяного регістра.
Реалізація абсолютної та безпосередньої адресації в машинах [[PDP]] і VAX досить цікава й використовує неявно, як залучений регістр, регістр лічильника команди (PC). Абсолютна адресація реалізується через непряму регістрову з автоінкрементом, а безпосередня – через непряму з автоінкрементом та дописуванням зсуву або константи безпосередньо після команди. При цьому регістр PC, у момент виконання команди завжди вказує на наступну після неї комірку пам'яті, яка містить адресу зсуву або константи, й обчислення абсолютної адреси відбудеться коректно. Після цього необхідно лише збільшити PC до адреси наступної команди. Це робиться шляхом додання до поточного значення лічильника одиниці (автоінкремента).
 
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #f9f9f9 solid; font-size: 95%;"