русс | укр

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

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

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

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


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

Разделение данных между сегментами кода различной разрядности.


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


Поскольку выбор размерности операндов и адресов определяется в сегментах кода и их дескрипторах, сегменты данных могут свободно разделять между собой 16-разрядные и 32-разрядные сегменты кода. Единственное ограничение налагается указателями с 16-разрядным смещением, которые могут адресовать только первые 64 Кбайт сегмента. Когда между 16-разрядными и 32-разрядными сегментами когда должен разделяться сегмент данных длиннее чем 64 Кбайт, то данные, которые должны быть доступны 16-разрядным сегментам, должны быть помещены в первые 64 Кбайт.

Стек с диапазоном меньше 64 Кбайт может разделятся как 16-разрядными так и 32-разрядными сегментами кода. Этот класс стеков включает:

  • Стеки в сегментах, расширяемых вверх, с очищенными битами детализации и большими битами.
  • Стеки в сегментах, расширяемых вниз, с очищенными битами детализации и большими битами.
  • Стеки в сегментах, расширяемых вверх, с очищенным набором битов детализации и большим битом. В этих сегментах стек полностью содержится внутри младших 64 Кбайт. (Смещения, большие чем 0FFFFH, могут быть использованы для неразделяемых данных не входящих в стек).

В общем случае, B-бит сегмента стека нельзя использовать для изменения размера стека, который используется 16-разрядным сегментом кода. Размер указателя стека, используемый процессором для неявных ссылок на стек, управляется B-битом дескриптора сегмента данных стека. Неявными являются ссылки, вызванные прерываниями, исключениями и такими командами, как PUSH, POP, CALL и RET. Хотя кажется, что B-бит можно использовать для увеличения сегмента стека 16-разрядных программ сверх 64 Кбайт, делать этого нельзя. B-бит не управляет явными ссылками стека, такими как ссылки на параметры или локальные переменные. "Большой" стек может быть использован 16-разрядным сегментом кода только в случае, если код модифицирован таким образом, что все явные ссылки на стек стоят перед префиксом размера адреса. Такая модификация вызывает использование этими ссылками 32-разрядной адресации.



В больших сегментах, расширяемых вниз (установлены биты детализации, большой и бит расширения вниз), все смещения больше 64Кбайт, следовательно 16-разрядная программа не может использовать сегмент стека этого типа, хотя сегмент кода и модифицирован для использования 32-разрядной адресации. (Более подробная информация о G, B и E битах содержится в Главе 6).



<== предыдущая лекция | следующая лекция ==>
Сочетание 16-разрядных и 32-разрядных операций. | Управление стеком для передачи управления


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


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

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

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


 


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

 
 

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

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