русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Проверка типа


Дата добавления: 2015-06-12; просмотров: 437; Нарушение авторских прав


Помимо дескрипторов для сегментов кода и данных прикладной программы, процессор i486 имеет дескрипторы для системных сегментов и шлюзов. Это структуры данных, используемые для организации выполнения задач (Глава 7), также исключений и прерываний (Глава 9). В Таблице 6-1 перечислены все типы, определенные для системных сегментов и шлюзов. Отметим, что не все дескрипторы определяют сегменты: дескрипторы шлюзов содержат точки входа в процедуры.

Поля Типа дескрипторов сегментов кода и данных включают в себя биты, более подробно определяющие назначение сегмента (см. Рисунок 6-1):

  • Бит "Доступный для записи" в дескрипторе сегмента данных управляет возможностью выполнения записи из программ в данный сегмент.
  • Бит "Доступный для чтения" дескриптора выполняемого сегмента задает возможность выполнения чтения программами из данного сегмента (например для доступа к константам, записанным непосредственно в область кода).

Доступный для чтения выполняемый сегмент может быть прочитан двумя способами:

  1. С помощью регистра CS, используя префикс переопределения сегмента CS.
  2. С помощью загрузки селектора для данного дескриптора в регистр сегмента данных (DS, ES, FS или GS).
Таблица 6-1. Типы системных сегментов и шлюзов ----------------------------------------------------------------- Тип Описание----------------------------------------------------------------- 0 Резервируется 1 Доступный сегмент состояния задачи (TSS) 80286 2 LDT 3 Занятый сегмент состояния задачи (TSS) 80286 4 Шлюз вызова 5 Шлюз задачи 6 Шлюз прерываний 80286 7 Шлюз ловушек 80286 8 Резервируется 9 Доступный TSS ЦПУ i486 10 Резервируется 11 Занятый TSS ЦПУ i486 12 Шлюз вызова ЦПУ i486 13 Резервируется 14 Шлюз прерываний ЦПУ i486 15 Шлюз задачи ЦПУ i486-----------------------------------------------------------------

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



  1. Когда селектор для дескриптора загружается в сегментный регистр. Конкретные сегментные регистры могут содержать только конкретные типы дескрипторов; например:
    • Регистр CS может быть загружен только селектором выполняемого сегмента.
    • Селекторы выполняемых сегментов, не являющиеся "Доступными для чтения", не могут быть загружены в регистры сегментов данных.
    • В регистр SS могут быть загружены только селекторы сегментов данных, "Доступных для записи".
  2. Конкретные сегменты могут использоваться командами только конкретными, предопределенными способами; например:
    • Никакая команда не может выполнять запись в выполняемый сегмент.
    • Никакая команда не может выполнять запись в сегмент данных, если для него не установлен бит "Доступен для записи".
    • Никакая команда не может выполнять чтение выполняемого сегмента, если для него не установлен бит "Доступен для чтения".


<== предыдущая лекция | следующая лекция ==>
Дескрипторы сегмента и защита | Проверка границы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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