русс | укр

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

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

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

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


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

Директивы упрощенного описания сегментов.


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


Сегменты программы должны описываться с помощью директивы SEGMENT, указывающей имя сегмента, используемое для ссылок в программе, границу выравнивания (байт, слово, параграф, страница), тип комбинации его с другими сегментами, класс сегмента, определяющий порядок следования сегмента в памяти.

TASM позволяет облегчить описание сегментов путем применения директив упрощенного описания сегментов. Эти директивы употребляют в программе после выбора модели памяти директивой MODEL. В тексте программного модуля директивы упрощенного описания могут располагаться в произвольном порядке.

Ниже приведены список и краткое описание всех директив упрощенной сегментации:

CODESEG [имя] - начало или продолжение кодового сегмента модуля. Для модели с типом FAR можно задавать имя, которое становится действующим именем сегмента. В этом случае нельзя иметь более одного кодового сегмента в модуле.

.CODE [имя] - аналог CODESEG для режима Masm.

DATASEG - начало или продолжение сегмента данных, инициализированных по умолчанию, или типа NEAR.

.DATA - аналог DATASEG для режима Masm.

CONST - начало или продолжение сегмента постоянных данных модуля. Постоянные данные всегда имеют тип NEAR и эквивалентны инициализированным данным.

.CONST - аналог CONST для режима Masm.

UDATASEG - начало или продолжение сегмента данных, не инициализированные по умолчанию или типа NEAR. В этом сегменте необходимо размещать только неинициализированные данные, иначе размер выполняемой программы будет больше необходимого.

.DATA? - аналог UDATASEG для режима Masm.

STACK [размер] - начало или продолжение сегмента стека программного модуля. Необязательный параметр размер указывает объем памяти, отводимый под стек (в словах). По умолчанию TASM устанавливает размер стека в 200h слов (1K). В режиме Masm все метки, программный код или данные, следующие за оператором STACK, не относятся к стековому сегменту. Режим



Ideal наоборот, резервирует указанное пространство и оставляет сегмент стека открытым, что дает возможность размещать в нем метки и неинициализированные данные. Директива создания стека необходима только в случае полной разработки программы на Ассемблере, так как все языки высокого уровня создают стек автоматически.

.STACK [размер] - аналог STACK для режима Masm.

FARDATA [имя] - начало или продолжение сегмента инициализированных данных дальнего типа с указанным именем (по умолчанию используется имя FAR_DATA). В программном модуле можно размещать несколько сегментов такого типа.

.FARDATA [имя] - аналог FARDATA для режима Masm.

UFARDATA [имя] - начало или продолжение сегмента неинициализированных данных типа FAR с указанным именем (по умолчанию используется имя FAR_BSS). В программном модуле можно размещать несколько сегментов такого типа.

.FARDATA? [имя] - аналог UFARDATA для режима Masm.

Использование директив упрощенного описания сегментов создает переменные, которые описывают детали выбранного сегмента. К значениям этих переменных можно обращаться для получения информации о том или ином сегменте. Ниже приведено описание этих идентификаторов:

@code - сегмент или группа, назначенные CS;

@data - то же, DS;

@fardata - имя текущего сегмента FARDATA;

@fardata? - то же, UFARDATA;

@curseg - -"-;

@stack - сегмент или группа, назначенные SS.

 



<== предыдущая лекция | следующая лекция ==>
Директива MODEL. | Директивы STARTUPCODE и EXITCODE.


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


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

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

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


 


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

 
 

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

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