ою "Н", наприклад, 10Н). <В
Сегменти
Процесор комп'ютера (СРU) ділить пам'ять на блоки, звані сегментами. Кожен сегмент займає 64 К і кожному сегменту відповідає унікальна числова адреса. Процесор має чотири регістра сегмента. Регістр - це внутрішня структура, призначена для зберігання інформації. Регістри сегмента призначені для зберігання адрес окремих сегментів. Вони називаються СS (сегмент коду), DS (сегмент даних), SS (сегмент стека) і ES (запасний сегмент). Крім зазначених, процесор має ще 9 регістрів. У Наразі слід зазначити регістри IР (покажчик команди) і SР (покажчик стека). Регістри СS і IР в парі складають довгу адресу команди, яка буде виконуватися наступною. Регістри SS і SР в парі складають довгу адресу стека. br/>В
Доступ до пам'яті
Доступ до осередків пам'яті здійснюється допомогою з'єднання вмісту регістра сегменту з вмістом того чи іншого регістра.Такім чином визначається адресу необхідного ділянки пам'яті. Наприклад, адреса наступної команди визначається вмістом регістрів СS і IР (Записується "СS: IР"). Після виконання команди і її видалення з пам'яті вміст IР змінюється так, щоб в регістрах СS: IР знаходився адресу команди, яка буде виконана після даної.
Спосіб об'єднання регістрів для визначення адреси комірки пам'яті не накладає обмежень на кількість доступної пам'яті. Верхнє обмеження залежить від фізичної будови пам'яті (тобто від загальної кількості осередків). Перші версії MS-DOS розроблялися для процесора Intel 8088 СРU. Кожен регістр цього процесора розрахований на зберігання 16-бітового числа. Тобто СРU 8088 комбінує вміст сегментного регістра (Скажімо, СS) з вмістом іншого регістра (скажімо, IР), отримуючи 20-бітову адресу пам'яті, що обмежує доступну пам'ять до 2хх20 байтів або 1 Мб.
Пізніше з'явилися вдосконалені версії MS-DOS і відповідно їм вдосконалені процесори СРU 80286 і 80386, що дозволяють виробляти доступ до комірок, розташованим за кордоном першого Мб пам'яті. Однак, обмеження на 1 Мб досі (принаймні в версії 3.3) не вдалося обійти, що є одним з основних недоліків операційної системи.
Доступ до пам'яті організовується з'єднанням вмісту одного з регістрів сегменту з вмістом одного з залишилися регістрів. Значення сегментного регістра називається адресою сегменту. Значення інших регістрів в цьому випадку називається відносною адресою комірки пам'яті (від початку сегмента) або її коротким адресою. Таким чином, адреса байта обчислюється за допомогою множення адреси сегмента на 16, і до отриманого значенням додається короткий адресу.
Сегментні регістри
Сегментні регістри використовуються при ідентифікації сегменту пам'яті. Сегмент - це безперервний блок пам'яті, довжиною 64 К. Сегментні регістри застосовуються в комбінації з регістром покажчика або індексними регістрами і в цьому випадку ідентифікують конкретну комірку пам'яті.
Всього сегментних регістра чотири. Регістр СS зазвичай використовується при ідентифікації блоку пам'яті, в якому зберігається код програми. Регістр DS при ідентифікації ділянки пам'яті, в якому знаходяться дані цієї програми. За допомогою регістра SS організується доступ до стеку. (Стек - це тимчасово розподілена область пам'яті, що забезпечує інтерфейс "MS-DOS-прикладна програма"). Регістр ES - додатковий (або запасний) сегментний регістр. На нього покладені різноманітні функції, частина з яких розглядається нижче.
В
Регістри стека
Мається два регістри стека. Вони застосовуються в комбінації з регістром SS і визначають місцезнаходження стека. Регістр SР називається покажчиком початку стека, і в комбінації з регістром SS ідентифікує перший байт стека. Регістр BР називається покажчиком бази стека і в комбінації з регістром SS ідентифікує останній байт стека.
В В
Індексні регістри
Індексних регістра теж два. Регістри SI і DI застосовуються в комбінації з одним з сегментних регістрів і визначають місцезнаходження конкретної комірки пам'яті. Регістр SI зазвичай комбінують з регістром DS, регістр DI - з регістром ES. br/>
Регістри загального призначення
До регістрів загального призначення відносяться регістри AX, BX, СX і DX (їх чотири). Це багатофункціональні регістри. Регістр покажчика команди
Регістр IР зазвичай застосовується в комбінації з регістром СS і визначає адресу наступної команди. Регістр прапорів стану
У регістрі прапорів зазвичай знаходяться дев'ять прапорів стану процесора (Кожен прапор займає 1 біт). Ці прапори визначають результат конкретних операцій, виконуваних під управлінням MS-DOS. Регістри пам'яті Регістр пам'яті включає 2 байти даних (або 16 бітів). Реально регістри загального призначення однобайтние. Так, регістр AX включає регістр AH (який складає старший...