Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Фирмы INTEL




Программы, состоящие из нескольких модулей

Программы, состоящие из одного модуля

Ассемблера

При разработке простых программ, написанных на языке ассемблера, её помещают в один файл – модуль. Имя этого файла будет являться именем модуля. В этом случае необходимо описать модель памяти (обычно TINY или SMALL), способ расположения сегментов в памяти (обычно DOSSEG) и соответствующие сегменты – сегмент кода, сегмент данных и сегмент стека (директивы.CODE,.DATA,.DATA?, STACK). Затем записывается соответствующий код программы, данные, с которыми она работает, оформляются точки входа в программу и выхода из неё.

Но если текст программы большой, то целесообразно разбить его на более мелкие файлы.

 

При разработке программ, состоящих из нескольких модулей (файлов), их целесообразно объединить в один проект, как и при программировании на языках высокого уровня. Это не только гарантирует правильную компоновку всех модулей программы, но и одинаковые условия ассемблирования, одинаковые модели памяти во всех модулях.

Главная проблема, возникающая при программировании с несколькими программными модулями, заключается в обеспечении доступа к переменным, находящимся в разных файлах. Если переменная описана в одном файле, а её необходимо использовать в другом, то следует каким-то образом сообщить компилятору об этом. Нельзя просто описать две переменные с одним именем – это будут две разные переменные, даже если они расположены в одном сегменте.

Для решения этой проблемы используются директивы описания общедоступных переменных PUBLIC и обеспечения доступа к таким переменным – EXTRN.

 

Глава 10. Защищенный режим микропроцессоров

В ряду микропроцессоров семейства фирмы INTEL были три особые, можно сказать, контрольные точки:

- i8086 – начало семейства;

- i80286 – появление защищённого режима;

- i80386 – использование 32-битных регистров.

Все современные многозадачные операционные системы работают только в защищенном режиме. Любой микропроцессор, находясь в реальном режиме, мало отличается от микропроцессора i8086, это лишь его более быстрый аналог.

В защищенном режиме заметно изменяется принцип работы микропроцессора с памятью, хотя она остается по-прежнему сегментированной, но изменяются функции и номенклатура программно-аппаратных компонентов, участвующих в сегментации.

Реальный режим поддерживал выполнение всего одной программы. Для этого достаточно было простых механизмов распределения оперативной памяти и не было потребности в организации защиты программ от взаимного влияния. Поэтому всё, что нужно было знать программе - это адреса, по которым располагаются её сегменты кода, данных и стека.

Для решения проблемы обеспечения работы нескольких задач без взаимного влияния, а при необходимости — во взаимодействии между ними, фирма INTEL поступила следующим образом: не нарушая принцип сегментации, каждому сегменту присвоила определённые атрибуты.

Любой сегмент памяти в защищённом режиме имеет следующие атрибуты:

- расположение сегмента в памяти;

- размер сегмента;

- уровень привилегий (определяет права данного сегмента относительно других сегментов);

- тип доступа (определяет назначение сегмента);

и некоторые другие.

Микропроцессор поддерживает в защищённом режиме два типа защиты:

- по привилегиям;

- по типу доступа к памяти.

Таким образом, в отличие от реального режима в защищённом режиме программа уже не может запросто обратиться по любому физическому адресу памяти.

Ключевым объектом защищённого режима является специальная структура — дескриптор сегмента, который представляет собой 8-байтовое (четыре смежных слова) краткое описание непрерывной области памяти, содержащей перечисленные ранее атрибуты.

Любая область памяти, которая логически может являться сегментом данных, стека или кода, должна быть описана таким дескриптором.

Все дескрипторы собираются вместе в одну из трёх дескрипторных таблиц - глобальную таблицу дескрипторов, таблицу прерываний и локальную таблицу дескрипторов.

. В какую именно таблицу, определяется назначением дескриптора.

Адрес, по которому размещаются эти дескрипторные таблицы, может быть любым; он хранится в специально предназначенном для этого адреса сегментном регистре — селекторе.

 




Поделиться с друзьями:


Дата добавления: 2014-11-09; Просмотров: 401; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.