Все про Assembler українською мовою на сайті net.kr.ua

 

:: Меню ::

Головна
Введення
Архітектура реального режиму
Основи програмування
Команди і алгоритми
Розширені можливості сучасних мікропроцесорів
Система команд процесорів Intel
Книга для гостей
Контакти
Добавити у вибране

:: Друзі ::

  В нашей компании купить шунгит недорого, со скидками.
 

:: Лічильники ::

=

 

 

 

 

fff00e50

Розподіл адресного простору

Не слід думати, що терміни "адресний простір" і "оперативна пам'ять" еквівалентні. Адресний простір - це просто набір адрес, які уміє формувати процесор; зовсім не обов'язково всі ці адреси відповідають реально існуючим елементам пам'яті. Залежно від модифікації персонального комп'ютера і складу його периферійного устаткування, розподіл адресного простору може декілька розрізнятися. Проте, розміщення основних компонентів системи задоволене строго уніфіковано. Типова схема використання адресного простору комп'ютера приведена на мал. 1.5. Значення адрес на цьому малюнку, як і всюди далі в книзі, дані в шістнадцятиричній системі числення.

Мал. 1.5. Типовий розподіл адресного простору.


Перші 640 Кбайт адресного простору з адресами від 00000h до 9FFFF11 (і, відповідно, з сегментними адресами від 0000h до 9fffh) відводяться під основну оперативну пам'ять, яку ще називають стандартною (conventional). Початковий кілобайт оперативної пам'яті зайнятий векторами переривань, які забезпечують роботу системи переривань комп'ютера, і включає 256 векторів по 4 байти кожен. Услід за векторами переривань розташовується так звана область даних BIOS, яка займає всього 256 байт, починаючи з сегментної адреси 40h. Сама BIOS (від Basic In-out System, базова система введення-виводу) є частиною операційної системи, що зберігається в постійному пристрої, що запам'ятовує. Це пристрій (ПЗП BIOS), що запам'ятовує, розташовується на системній платі комп'ютера і є, таким чином, прикладом вбудованого, або "зашитого" програмного забезпечення. У функції BIOS входить тестування комп'ютера при його включенні, завантаження в оперативну пам'ять власне операційної системи MS-DOS, що зберігається на магнітних дисках, а також управління штатною апаратурою комп'ютера - клавіатурою, екраном, дисками і іншим. В області даних BIOS зберігаються різноманітні дані, використовувані програмами BIOS в своїй роботі. Так, тут розміщуються:

  • вхідний буфер клавіатури, куди поступають коди клавіш, що натискаються користувачем;
  •  адреси відеоадаптера, а також послідовних і паралельних портів;
  • дані, що характеризують поточний стан відеосистеми (форма курсора і його поточне положення на екрані, відеорежим, використовувана відеосторінка і інш.);
  • осередки для відліку поточного часу і так далі

Область даних BIOS заповнюється інформацією в процесі початкового завантаження комп'ютера, а потім динамічно модифікується системою в міру необхідності. Багато прикладних програм, особливо, написано на мові асемблера, звертаються до цієї області з метою читання або модифікації тих, що містяться в них даних. З деякими осередками області даних BIOS ми зіткнемося при розгляді прикладів конкретних програм.
В області пам'яті, починаючи з адреси 500h, розташовується власне операційна система MS-DOS, яка зазвичай займає декілька десятків Кбайт. Програми MS-DOS, як і інші системні складові (вектори переривань, область даних BIOS) записуються в пам'ять автоматично в процесі початкового завантаження комп'ютера.
Вся пам'ять, що залишилася, до межі 640 Кбайт вільна для завантаження будь-яких системних або прикладних програм. Як правило, на початку сеансу в пам'ять завантажують резидентні програми (русифікатор, антивірусні програми). За наявності резидентних програм об'єм вільної пам'яті зменшується.
Що залишилися 384 Кбайт адресного простору між межами 640 Кбайт і 1 Мбайт, звані старшою, або верхньою (upper) пам'яттю, спочатку були призначені для розміщення постійних пристроїв, що запам'ятовують (ПЗП). Практично під ПЗП зайнята тільки невелика частина адрес, а останні використовуються в інших цілях.
Частина адресного простору старшої пам'яті відводиться для адресації до графічного і текстового відеобуферів графічного адаптера. Графічний адаптер є окремою мікросхемою або навіть окремою платою, до складу якої входить власний пристрій, що запам'ятовує (відеопам'ять). Це пристрій, що запам'ятовує, не має ніякого відношення до оперативної пам'яті комп'ютера, проте, його схеми управління налаштовані на діапазони адрес A0000h...AFFFFh і B8000h...BFFFFh, що входять в загальний з пам'яттю адресний простір процесора. Тому будь-яка програма може звернутися по цих адресах і, наприклад, записати дані у відеобуфер, що приведе до появи на екрані деякого зображення. Белі відеосистема знаходиться в текстовому режимі, а запис здійснюється по адресах текстового відеобуфера, на екрані з'являться зображення тих або інших символів (букв, цифр, різних знаків). Якщо ж перевести відеосистему в графічний режим, і записувати дані в графічний відеобуфер, то на екрані з'являться окремі крапки або лінії. Можна також прочитати поточний вміст осередків відеобуфера.
В самому кінці адресного простору, в області адрес F0000h...FFFFFh, розташовується ПЗП BIOS - постійний пристрій, що запам'ятовує, про який вже мовилося вище.
Частина адресного простору, починаючи з адреси C0000h, відводиться ще під один ПЗП - так званий ПЗП розширень BIOS для обслуговування графічних адаптерів і дисків.
До складу комп'ютера, разом із стандартною пам'яттю (640 Кбайт), входить ще розширена (extended) пам'ять, максимальний об'єм якої може доходити до 4 Гбайт. Ця пам'ять розташовується за межами першого мегабайта адресного простору і починається з адреси 100000h. Реально на машині може бути встановлений не повний об'єм розширеної пам'яті, а лише декілька десятків Мбайт або навіть менше.
Оскільки функціонування розширеної пам'яті підкоряється "специфікації розширеної пам'яті" (Extended Memory Specification, скорочено XMS), то і саму пам'ять часто називають XMS-памятью. Як вже наголошувалося вище, доступ до розширеної пам'яті здійснюється в захищеному режимі, тому для MS-DOS, що працює тільки в реальному режимі, розширена пам'ять недоступна. Проте в сучасні версії MS-DOS включається драйвер HIMEM.SYS, що підтримує розширену пам'ять, тобто що дозволяє її використовувати, хоча і обмеженим чином. Конкретно в розширеній пам'яті можна розмістити електронні диски (за допомогою драйвера RAMDRIVE.SYS) або дискові кеш-буфери (за допомогою драйвера SMARTDRV.SYS).
Перші 64 Кбайт розширеної пам'яті, точніше, 64 Кбайт - 16 байт з адресами від l00000h до l0ffefh, носять спеціальну назву область старшої пам'яті (High Memoryarea, HMA). Ця область чудова тим, що хоча вона знаходиться за межами першого мегабайта, до неї можна звернутися в реальному режимі роботи мікропроцесора, якщо визначити сегмент, що починається в самому кінці мегабайтного адресного простору, з сегментної адреси Ffffh, і вирішити використання адресної лінії А20. Перші 16 байт цього сегменту зайняті ПЗП, область же із зсувами 0010h...FFFFh можна в принципі використовувати під програми і дані. MS-DOS дозволяє завантажувати в НМЛ (директивою файлу CONFIG.SYS Dos= high) значну частину самій себе, внаслідок чого зайнята системою область стандартної пам'яті істотно зменшується. Старшу пам'ять обслуговує той же драйвер HIMEM.SYS, тому завантаження DOS в НМЛ можливе, тільки якщо встановлений драйвер HIMEM.SYS.
Як видно з приведеного вище малюнка, частина адресного простору верхньої пам'яті, не зайнята розширеннями BIOS і відеобуферами, виявляється вільною. Ці вільні ділянки можна використовувати для адресації до розширеної пам'яті (звичайно, не до всієї, а лише до тієї її частині, об'єм якої збігається із загальним об'ємом вільних адрес старшої пам'яті). Відображення розширеної пам'яті на вільні адреси старшої пам'яті виконує драйвер Emm386.EXE, а самі ділянки старшої пам'яті, "заповнені" розширеною, називаються блоками верхньої пам'яті (Upper Memory B10cks, UMB). MS-DOS дозволяє завантажувати в UMB встановлювані драйвери пристроїв, а також резидентні програми. Завантаження системних програм в UMB звільняє від них стандартну пам'ять, збільшуючи її транзитну область. Завантаження в UMB драйверів здійснюється директивою файлу CONFIG.SYS DEVICEHIGH (замість директиви DEVICE), а завантаження резидентних програм - командою DOS 10adhigh. На оптимально конфігурованому комп'ютері системними компонентами зайняті лише близько 20...25 Кбайт основної пам'яті, а решта всієї пам'яті в об'ємі близько 620 Кбайт може використовуватися для завантаження прикладних програм.

-

:: Наша кнопка ::

Отримати код:

Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


:: Популярне ::

-


:: Посилання ::

-


 

 

 


Copyright © net.kr.ua, 2019-2025 (assem.us)