- •1.Способи адресації
- •3.Пряма адресація пам'яті. .
- •6. Сторінкова пам'ять.
- •7.Сегмента адресація.
- •8. Опосередкована адресація з масштабуванням
- •9.Адресація по базі з сувом.
- •10.Адресація по базі з індексуванням
- •11. Адресація по базі з індексуванням та масштабуванням
- •12.Вирівнювання даних та коду.
- •13. Регістри загального призначення
- •14. Сегментні регістри.
- •15.Індексні регістри.
- •16. Спеціальні регістри
- •17. Флаги ознак.
- •18. Регистры управления (Control Registers)
- •19.20. Стек, регітсри стека.
- •22. Флаг нуля zf
- •23. Флаг знака sf
- •25. Флаг четности.
- •26. Флаг полупереносу.
- •27. Флаг трассировки.
- •28. Флаг напрямку.
- •29. Флаг переривание.
- •35. Арифметические команды
- •36. Команди блочної обробки даних
- •37. Команды ввода и вывода
- •38. Команды управления флагами
- •39. Команда пересылки данных: возможности и ограничения
- •40. Команди керування
- •41. Стек математичного співпроцесора
- •42.Команди пересилки співпроцесора
- •43. Арифметические команды сопроцессора
- •46. Різновиди чисел
- •47. Способи округлення
- •48.Трансцендентні команди
- •49. Команди завантаження констант співпроцесора
- •50. Порівняння чисел з плаваючою комою
- •51. Структура жёсткого диска
- •58. Структура каталогов Linux
- •59. Структура ufs
- •60. Суперблок. Ufs
- •61. Индексный дескриптор ufs
- •62. Основні механізми передачі параметрів
- •63. Основні місця передачі параметрів
- •64. Вкладені обчислення
- •65. Різновиди комбінацій сегментів
- •66. Порядок завантаження сегментів, директиви
- •67. Оптимізація обчислень
- •68. Математична оптимізація
- •69. Алгоритмічна оптимізація
- •70 .Низькорівнева оптимізація
- •71. Основні методи алгоритмічної оптимізації
- •72. Основні рекомендації низького рівня
- •74. Особенности архитектуры процессоров Pentium Pro и Pentium II
- •76. Конвеєр fpu
- •77. Принципи роботи кешу
- •79. Регистры управления (Control Registers)
- •80. Індексні регістри дескрипторів
- •81. Віртуалізація пам’яті
- •82. Переривання, маскування та обробка.
- •84. Кеш з зворотнім записом
- •85. Кеш з відкладеним записом
- •86. Наскрізний кеш
- •87. Кеш читання
- •88. Повністю асоціативний кеш
- •91. Структура кешу
- •92. Теги, призначення
- •93. Конвеєри mmx та sse
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
Концепція
Поняття адреси
Адреса, що використовується в машинному коді (тобто значення вказівника) називається «віртуальна адреса». Адреса, що процесор виставляє на шину називається «фізична адреса».