русс | укр

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

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

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

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


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

А Б С О Л Ю Т Н Ы Е П Е Р Е М Е Н Н Ы Е


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


 

Как известно, память для переменных, объявленных в разделе Var, выделяется при старте блока, в котором содержится данный раздел, в порядке объявления имен переменных. Местоположение блока в пространстве оперативной памяти ЭВМ определяет операционная система. В то же время Турбо Паскаль предоставляет возможность программисту так описать переменные, чтобы им были назначены заранее заданные адреса. Такие переменные называются абсолютными; их описание после имени типа должно содержать так называемое абсолютное предложение.

Синтаксис абсолютного предложения:

 

 
 

 


Структура абсолютного предложения имеет два альтернативных варианта.

В первом варианте производится задание абсолютного адреса в форме, принятой в операционной системе MS DOS (адрес сегмента и смещение - см.раздел "Адресация операндов").

 

Пример 1.

Type ScreenChar = record

Symbol : char;

Attrib : byte;

end;

ScreenAr = array[1..25,1..80] of ScreenChar;

Vary : real absolute $A100:$0000;

Screen : ScreenAr absolute $B800:$0000;

Здесь переменным y и Screen назначаются конкретные адреса оперативной памяти. В частности, значение $B800:$0000 определяет фиксированный адрес видеопамяти.

Примечание. В конструкции record .. end объединяются переменные различного типа (см.раздел "Записи").

 

Во втором варианте для абсолютной переменной назначается адрес другой, ранее объявленной переменной.

 

Пример 2 (аналогично примеру 2 раздела "Приведение типов переменных").

 

TypeByteAr = array[1..2] of byte;

Var W : word;

Br : ByteAr absolute W;

Begin

Br[1]:=10; Br[2]:=20;

Writeln(W,' ',Br[1],' ',Br[2]);

W:=2500;

Writeln(W,' ',Br[1],' ',Br[2]);

 

В результате работы программы будет отпечатано:



5130 10 20

2500 196 9

Переменные W и Br адресуют одно и то же поле памяти. Другими словами, одно и то же поле памяти размером два байта имеет два имени: имя W и имя Br. Если в программе используется имя W, то это поле можно обрабатывать как переменную типа word, для имени Br допустимые операции определяются именем типа ByteAr.

При совмещении переменных с помощью директивы absolute не рекомендуется в разделе Var использовать описание типа вместо имени типа. Нарушение этого правила не анализируется компилятором, но может привести к неправильной работе программы, вплоть до ее "зависания", особенно при использовании сопроцессора.

 

Например, вместо описания

 

Var A : array[1..6] of longint;

B : array[1..4] ofreal absolute A;

следует применять описание

TypeArLong = array[1..6] of longint

ArReal = array[1..4] of real;

Var A : ArLong;

B : ArReal absolute A;



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


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


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

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

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


 


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

 
 

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

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