Вступ
Мікропроцесори корпорації Intel і персональні комп'ютери на їх базі пройшли не дуже довгий у часі, але значний за сущністю шлях розвитку, протягом якого кардинально змінювалися їхні можливості і навіть самі принципи їхньої архітектури.
У той же час, вносячи в мікропроцесор принципові зміни, розробники були ви ¬ потреб постійно мати на увазі необхідність забезпечення сумісності ¬ єю нових моделей зі старими, щоб не відлякувати потенційного покупця перспективою повної заміни освоєного або розробленого їм програмного забезпечення. У результаті сучасні мікропроцесори типу Pentium, забезпечуючи такі можливості, як 32-бітну адресацію майже необмежених обсягів пам'яті, багатозадачний режим з одночасним виконанням декількох програм, апаратні засоби захисту операційної системи і прикладних програм один від одного, багатий набір додаткових ефективних команд і способів адресації, в той же час можуть працювати (і часто працюють) в режимі перших мікропроцесорів типу 8086, використовуючи всього лише 1 мегабайт оперативної пам'яті, 16-розрядні операнди (тобто числа в діапазоні до 216-1 = 65535) і обмежений склад команд. Оскільки програмування на мові асемблера безпосередньо зачіпає апаратні можливості мікропроцесора, перш за все, слід з'ясувати, якою мірою про - граміст може використовувати нові можливості мікропроцесорів у своїх програмах, і які проблеми програмної несумісності можуть при цьому виникнути.
Перші персональні комп'ютери корпорації IBM, що з'явилися в 1981 р. і отримали назву IBM PC, використовували як центрального обчислювального вузла 16-розрядний мікропроцесор з 8-розрядною зовнішньою шиною Intel 8088. Надалі в персональних комп'ютерах став використовуватися і інший варіант мікропроцесора, 8086, котрий відрізнявся від 8088 тим, що був повністю 16-розрядним. З тих пір його ім'я стало прозивним, і в програмах, що використовують тільки можливості процесорів 8088 чи 8086, говорять, що вони працюють у режимі 86-го процесора.
У 1983 р. корпорацією Intel було запропоновано мікропроцесор 80286, в якому був реалізований принципово новий режим роботи, отримавший назву захищений. Однак процесор 80286 міг працювати і в режимі 86-го процесора, який стали називати реальним.
У подальшому на зміну процесору 80286 прийшли моделі 80386, i486 і, нарешті, різні варіанти процесора Pentium. Всі вони можуть робити і в реальному, і в захищеному режимах. Хоча кожна наступна модель була значно досконаліша попередньої (зокрема, майже на два порядки зросла швидкість роботи процесора, починаючи з моделі 80386 процесор став 32-розрядним, а в процесорах Pentium реалізований навіть 64-розрядний обмін даними з системною шиною), однак з точки зору програміста всі ці процесори досить схожі. Основним їх якістю є наявність двох режимів роботи - реального і захищеного. Строго кажучи, в сучасних процесорах реалізований ще і третій режим - віртуального 86-го процесора, або V86, однак у плані вико ¬ користування мови асемблера цей режим не відрізняється від звичайного режиму 86-го процесора.
Реальний і захищений режими насамперед принципово розрізняється способом звернення до оперативної пам'яті комп'ютера. Метод адресації пам'яті, що використовується в реальному режимі, дозволяє адресувати пам'ять лише в межах 1 Мбайт; в захищеному режимі використовується інший механізм (через що, зокрема, ці режими і виявилися повністю несумісними), що дозволяє звертатися до пам'яті обсягом до 4 Гбайт. ............