русс | укр

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

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

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

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


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

Глава 10. Код программы, данные, адреса


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


Системная библиотека Турбо Паскаля содержит набор средств для анализа расположения программ и данных в памяти ПЭВМ. Широко поддерживается работа с адресами данных и кодов. В этой главе дается обзор этих средств и способы их применения.

10.1. Система адресации MS-DOS

Адресуемое пространство памяти в операционной системе MS-DOS организовано сегментами: последовательными блоками памяти по 64K каждый. Если известен сегмент, то дальнейшее уточнение места объекта в памяти происходит по его смещению, т.е. номеру байта от начала сегмента. Это, может быть, не самый эффективный способ адресации памяти, но на нем основана операционная система MS-DOS и все программы для нее. Таким образом, любая ячейка адресуемого пространства MS-DOS определяется парой чисел СЕГМЕНТ:СМЕЩЕНИЕ. При этом сегмент может начинаться с любого физического адреса, что порождает множественность способов адресации ячейки памяти. Например, такие разные адреса, как $83FD:$000B, $7FFD:$400B и $759D:$E60B в действительности адресуют к одной и той же ячейке. Иногда может быть интересно получить сплошной адрес ячейки, отсчитанный от начала памяти 0000:0000. Такое число получить очень просто: оно равно СЕГМЕНТ *16 + СМЕЩЕНИЕ.

Существует понятие нормализации адреса. Под этим понимается приведение его к такому виду, что смещение находится в диапазоне от 0 до 15 ($000F). Если вычислен сплошной адрес ячейки памяти, то его можно легко пересчитать в нормализованный «обычный» формат:

СЕГМЕНТ = Сплошной_адрес div 16

и

СМЕЩЕНИЕ = Сплошной_адрес mod 16,

где div и mod — операции деления нацело и взятие остатка от деления соответственно.

Сплошное представление адреса может быть очень большим числом, и мы рекомендуем использовать для его хранения тип LongInt. {186}



<== предыдущая лекция | следующая лекция ==>
Использование математического сопроцессора 80X87 | Распределение памяти при выполнении программ


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


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

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

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


 


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

 
 

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

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