Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Юрий Владимирович самый уважаемы человек =)экза...doc
Скачиваний:
5
Добавлен:
12.09.2019
Размер:
1.41 Mб
Скачать

3.Пряма адресація пам'яті. .

АБСОЛЮТНА (ПРЯМА) АДРЕСАЦІЯ пам'яті — метод адресації пам'яті, в якому ефективна адреса операнда записується безпосередньо в команді

+---------+---------+-----------------------------------+

| ADD | R1 | адреса операнда | R1:=R1+MEM[адреса операнда]

+---------+---------+-----------------------------------+

Для великої розрядності пам'яті це потребує досить великого поля команди. Тому в CISC-машинах, де допускається змінна довжина команди, цей метод адресації реалізований як правило безпосередньо, а в деяких RISC-машинах, де довжина поля адреси обмежена, вона завантажується частинами в один з вільних регістрів, а потім використовується регістрова адресація (яка в свою чергу в RISC-машинах реалізується на базі адресації за зсувом з нульовим значенням зсуву).

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

+----+------------------------------+

|JUMP| 28-бітна адреса |

+----+------------------------------+

Наприклад, в багатьох 32-бітних RISC-архітектурах, ефективна адреса наступної команди обчислюється як об'єднання чотирьох старших біт з лічильника команд та 28 біт молодших біт, які містяться в команді переходу. Це дозволяє переходити на будь-яку команду в межах 256-мегабайтного діапазону.

4.Безпосередня адресація. Операнд (байт або слово) указується в команді і після трансляції поступає в код команди; він може мати будь-який сенс (число, адреса, код ASCII), а також бути представлений у вигляді символічного позначення.

mov АН, 40h ;Число 40h завантажується в АН

mov Al,'*' ;Код ASCII символу "*' завантажується в AL

int 21h ;Команда переривання з аргументом 21h

limit = 528 ;Число 528 отримує позначення limit

mov Cx,limit ;Число, позначене limit, завантажується в СХ

Команда mov, використана в останній пропозиції, має два операнди; перший операнд визначається за допомогою регістрової адресації, другої, - за допомогою безпосередньої.

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

; Сегмент даних

mes db "Урок 1' ;Строка символів

;Сегмент команд

mov Dx,offset mes ;Адрес рядки засилає в DX

У приведеному прикладі відносна адреса рядка mes, тобто відстань в байтах першого байта цього рядка від початку сегменту, в якому вона знаходиться, заноситься в регістр DX.

6. Сторінкова пам'ять.

Сторінкова пам'ять — це підхід до організації віртуальної пам'яті, при якому одиницею відображення віртуальних адрес на фізичні є регіон константного розміру (так звана сторінка). Типовий розмір сторінки — 4096 байт, для деяких архітектур — до 128 Кб.

Підтримка такого режиму присутня в більшості 32-бітних та 64-бітних процесорів. Такий режим є класичним майже для усіх сучасних ОС, в тому числі Windows та сімейства UNIX. Широке використання такого режиму почалося з процесора VAX та ОС VMS з кінця 1970-х років. В сімействі x86 підтримка з'явилася з поколінням 386, першим 32-бітним поколінням.

Вирішувані проблеми

підтримка ізоляції процесів та захисту пам'яті шляхом створення власного віртуального адресного простору для кожного процесу

підтримка ізоляції області ядра від коду користувальницького режиму

підтримка пам'яті «тільки для читання» та невиконуваної пам'яті

підтримка відвантаження невикористовуваних сторінок в зону підкачування на диску (див. свопінг)

підтримка відображення файлів в пам'ять

підтримка роздільної між процесами пам'яті

підтримка системного виклику fork() в ОС сімейства UNIX

Концепція

Поняття адреси

Адреса, що використовується в машинному коді (тобто значення вказівника) називається «віртуальна адреса». Адреса, що процесор виставляє на шину називається «фізична адреса».