русс | укр

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

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

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

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


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

Модели памяти


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


 

Архитектура микропроцессора предусматривает разбиение оперативной памяти на физические сегменты. Размер каждого сегмента равен 64 Кбайт (К=1024). Вычисление физического адреса осуществляется путем сложения 16 - разрядного адреса сегмента, сдвинутого на 4 разряда, с адресом смещения в соответствии со следующей схемой:

 

15 0

. . . . . . . . Базовый

сегмент

 

15 0

 

Смещение . . . . . . . . . . . . . . .

       
   
 
 

 


19 0

           
   
 
   
 

 

 


20 – разрядный физический адрес

 

 

Адрес сегмента адресует память с «точностью» до 16 байт (или с точностью до параграфа); смещение адресует память с точностью до байта в пределах 64 Кбайт, размещение в памяти которых определяется начальным адресом сегмента.

Распределение памяти для программы на языке Си осуществляется следующим образом:

1. По умолчанию программе выделяется суммарный объем памяти, равный 128 Кбайт.

- 64 Кбайт для кода программы;

- 64 Кбайт для статистических данных и стека.

Такая модель памяти называется малой (small). В малой модели для доступа к объектам программы (коду или данным) используются указатели типа near – ближние указатели.

2. Если размер кода программы превышает 64 Кбайта, а для размещения стека и данных достаточно 64 Кбайта, то применяется средняя модель памяти (medium) . В такой модели для функций используются дальние указатели far, а для данных near.

3. Если размер программного кода не велик, а данные требуют больше, чем 64 Кбайт, то используется компактная (compact) модель памяти.

В такой модели доступ к объектам программы осуществляется с помощью указателей типа far, а в максимальной модели с помощью указателей типа huge.



4. Если как для данных, так и для кода требуется больше одного сегмента (>64 Кбайт), то применяется либо большая (large) модель, либо огромная(huge) модель.

Разница между указателями far и huge заключается в том, что в адресной арифметике при вычислении far указателей на данные используется 16- битное смещение. Это ограничивает размер отдельного элемента данных значением 64 Кбайт. Указанное ограничение снято в огромной модели памяти. Адреса huge позволяют использовать массивы, размер которых превышает 64 Кбайт. В адресной арифметике используются все 32 разряда, а тип результата unsigned long.

Работая в любой модели памяти, программист имеет возможность ее модификации, применяя явно модификаторы near, far и huge.

Так, например, если за модификатором near, far или huge следует идентификатор, то соответствующий программный объект будет размещен либо в стандартном сегменте (для near), либо в другом сегменте (для far и huge).

Объявление

char far ch;

означает, что адрес ch будет иметь тип far.

 



<== предыдущая лекция | следующая лекция ==>
Правила инициализации переменных | Управление экраном и памятью в текстовом режиме


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


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

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

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


 


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

 
 

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

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