русс | укр

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

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

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

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


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

А Д Р Е С А Ц И Я П А М Я Т И


Дата добавления: 2014-11-27; просмотров: 428; Нарушение авторских прав


 

Турбо Паскаль работает в операционной системе MS DOS, впервые реализованной на процессорах малой производительности 8086, 8088. В этих процессорах максимальный объем оперативной памяти равен 1 Мбайт. Тогда адресное пространство такой памяти - это последовательность байтов с адресами 00000 .. FFFFF (FFFFF = 100000 -1 = - 1 = -1). Следовательно, для представления полного физического адреса здесь требуется 20 бит.

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

СЕГМЕНТ : СМЕЩЕНИЕ

Сегмент - это блок памяти размером 64 Кбайта. Адрес сегмента может быть произвольным в пределах емкости основной памяти. Смещение - это номер байта по отношению к началу сегмента. Смещение изменяется в пределах $0000 .. $FFFF = 0 .. 65535.

Именно смещение определяет максимальный размер сегмента, а, следовательно, и максимальный размер переменной в Паскаль-программе.

Начальный адрес сегмента всегда кратен 16. Поскольку при этом последние четыре двоичные цифры равны нулю, то эти цифры в сегменте не указываются. Тогда абсолютный адрес байта

Adr = 16 Seg + Ofs,

где Seg - адрес сегмента; Ofs - смещение (offset - смещение, уступ).

Сегменты могут перекрываться. Вследствие этого адрес одного и того же байта может быть указан различными способами.

 

Пример. a) $0020:$0010; Adr = $00210

б) $001F:$0020; Adr = $00210.

 

Фрагмент памяти размером 16 байт называют параграфом. Поэтому можно сказать, что сегмент адресует память с точностью до параграфа, а смещение - с точностью до байта.

В программе адреса операндов, как правило, нормализованы. Нормализованным считают такой адрес, в котором смещение находится в пределах 0 .. 15 ($0000 .. $000F), т.е. в пределах одного параграфа. В этом случае



Seg = Adr div16; Ofs = Adr mod 16.

Размер сегмента определяет максимальный объем памяти, выделяемой для какого-либо объекта программы (сегмент данных, сегмент стека, программный модуль, динамическая переменная). Этот размер равен 65520 байт (64 Кбайт – 16 байт).

Примечание. Адресное пространство размером 1 Мбайт - это так называемая стандартная память. В современных компьютерах размер оперативной памяти значительно превышает 1 Мбайт. Тем не менее Турбо Паскаль вне зависимости от реального размера памяти компьютера может использовать лишь стандартную память (работу с полным объемом памяти может обеспечивать Borland Pascal или программная система Delphi, ориентированные на операционную систему Windows).

 

 



<== предыдущая лекция | следующая лекция ==>
П Р И М Е Р Ы О Б Р А Б О Т К И Ф А Й Л О В | А Д Р Е С Н Ы Й Т И П Д А Н Н Ы Х


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


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

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

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


 


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

 
 

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

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