Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Завдання_9 додаток_1






 

Доступ до комірок пам'яті здійснюється за допомогою з'єднання вмісту регістра сегмента з вмістом того чи іншого регістра. У такий спосіб визначається адреса необхідної ділянки пам'яті. Наприклад, адреса наступної команди визначається вмістом регістрів CS і IP (записується CS: IP). Після виконання команди і її видалення з пам'яті вміст IP змінюється так, щоб у регістрах CS: IP знаходилася адреса команди, що буде виконана після даної.

Спосіб об'єднання регістрів для визначення адреси комірки пам'яті не накладає обмежень на кількість доступної пам'яті. Верхнє обмеження залежить від фізичної будови пам'яті (тобто від загальної кількості чарунок). Перші версії MS-DOS розроблялися для процесора Intel 8088 CPU. Кожен регістр цього процесора розрахований на збереження 16-бітового числа. Тобто CPU 8088 комбінує вміст сегментного регістра (скажемо, CS) із вмістом іншого регістра (скажемо, IP), одержуючи 20-бітову адресу пам'яті, що обмежує доступну пам'ять до 2хх20 байтів чи 1 Мб.

Пізніше з'явилися удосконалені версії MS-DOS і відповідно їм удосконалені процесори CPU 80286 і 80386, що дозволяють робити доступ до чарунок, розташованих за кордоном першого Мб пам'яті. Однак, обмеження на 1 Мб у версії 3.3 не удалося обійти, що є одним з основних недоліків цієї операційної системи.

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

Сегментні регістри використовуються при ідентифікації сегмента пам'яті. Сегмент - це безперервний блок пам'яті, довжиною 64. Сегментні регістри застосовуються в комбінації з регістром покажчика чи індексними регістрами й у цьому випадку ідентифікують конкретну комірку пам'яті.

Усього сегментних регістрів чотири. Регістр CS звичайно використовується при ідентифікації блоку пам'яті, у якому зберігається код програми. Регістр DS при ідентифікації ділянки пам'яті, у якій знаходяться дані цієї програми. За допомогою регістра SS організується доступ до стеку. (Стек - це тимчасово розподілена область пам'яті, що забезпечує інтерфейс «MS-DOS - пpикладна пpогpама»). Регістр ES - додатковий (чи запасний) сегментний регістр. На нього покладені різноманітні функції, частина з яких розглядається нижче.







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.