:: Статистика ::

 
Індекс цитування

 

 

 

 

 

Базова адресація

Втім, якщо вже ми покладаємося на сприяння програміста, можна піти в цьому напрямі далі: ми оголошуємо один або декілька регістрів процесора базовими (декілька регістрів можуть використовуватися для адресації різних сегментів програми, наприклад, один — для коди, інший — для статичних даних, третій — для стека) і домовляємося, що значень цих регістрів програміст набуває як даність і ніколи сам не модифікує, зате всі адреси в програмі він обчислює на основі значень цих регістрів (мал. 3.6).

Мал. З.6. Переміщення коди, що використовує базову адресацію

В цьому випадку для переміщення програми нам потрібно лише змінити значення базових регістрів, і програма навіть не взнає, що завантажена з Іншої адреси. Статично инициализованными покажчиками в цьому випадку користуватися або неможливо, або необхідно завжди додавати до них значення базових регістрів.
Саме так відбувається завантаження corn-файлов в системі MS DOS. Система вьщеляет вільну пам'ять, набудовує для програми базові регістри DS і CS, які чомусь називаються сегментними, і передає управління на стартову адресу. Нічого більшого робити не треба.

 

рекламодавці:

/ ml lfppюн

::  Меню ::

ГОЛОВНА

Введення

Представлення даних в обчислювальних системах 

Машинні мови

Завантаження програм 

Управління оперативною пам'яттю

Сегментна і сторінкова віртуальна пам'ять

Комп'ютер і зовнішні події

Паралелізм з точки зору програміста 

Реалізація багатозадачності на однопроцесорних комп'ютерах 

Зовнішні пристрої

Драйвери зовнішніх пристроїв 

Файлові системи 

Додаток. Огляд архітектури сучасних ОС

 


:: Навігація ::

Головна

Додати у вишукане  

 

 

 


Copyright © Asentli, 2008