Регістр командного показчика
ЕIP – містить зміщення команди, яка повинна бути виконана. Зміщення задається відносно базової адреси сегменту коду (CS). В основному використовується при відлагодженні для відслідковування команд, що будуть виконуватись.
Сегментні регістри CS, DS, SS і ES
Кожен сегментний регістр забезпечує адресацію пам’яті об’ємом 64 Kb. Кожен сегмент вирівнюється на межу параграфа, тобто по будь-якій адресі кратній 16, і його адреса в сегментному регістрі передбачає наявність справа 4-ох нульових бітів.
Призначення регістрів :
CS – регістр сегменту коду. Містить в собі початкову адресу сегменту коду. Ця
адреса плюс значення зміщення в покажчику команд (Inst.Point) визначає адресу команди, яка повинна вибиратися для виконання. При написанні звичайних програм нема необхідності робити зсилки на регістр CS.
DS – регістр сегменту даних. Містить початкову адресу сегменту даних. Ця адреса
плюс значення зміщення, яке визначається в команді, вказують на комірку в сегменті даних з якою буде проводитись робота.
SS – регістр стека. Містить початковий адрес сегменту стеку. Стек містить адреси
повернення для підпрограм запущеної програми та коди повернення в DOS запущеної програми.
ES – додатковий сегментний регістр. Використовується для управління адресацією пам’яті. Цей регістр використовують для деяких операцій над стрічками (символьними даними). При необхідності використання ES (FS, GS) його необхідно ініціалізувати в програмі.
Послідовність регістрів і сегментів не зберігається.
В середині програми всі адреси пам’яті відносні до початку сегменту. Такі адреси називають зміщенням від початку сегменту.
Для звернення до будь-якої адреси в програмі комп’ютер додає адресу в регістрі сегменту до зміщення. Наприклад, початкова адреса сегменту даних
Дата добавления: 2015-10-09; просмотров: 679;