Загрузка...

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


Имеется еще несколько общеупотребительных директив определе-ния сегментов. Вам они потребуются только для больших или специ-альных программ, поэтому мы только кратко упомянем их. За более подробной информацией вы можете обратиться к Главе 9.

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

Директива .FARDATA позволяет вам определить дальний сегмент данных, то есть сегмент данных, отличный от стандартного сегмента @data, разделяемого (совместно используемого) всеми модулями. Ди-ректива .FARDATA позволяет в модуле Ассемблера определить свои собственные сегменты размером до 64К. Если задана директива .FARDATA, то именем определенного по этой директиве дальнего сег-мента данных будет @fardata, так же как @data — имя сегмента, оп-ределенного по директиве .DATA.

Директива .FARDATA? во многом аналогична директиве .FARDATA, но она определяет неинициализированный сегмент дальнего типа. Так же как и для директивы .FARDATA и имени @fardata, при указании директивы .FARDATA? сегмент данных дальнего типа, определенный по этой директиве, получает имя @fardata?.

Директива .CONST определяет ту часть сегмента данных, в ко-торой содержатся константы. Опять-таки это имеет силу только при компоновке кода Ассемблера с языком высокого уровня.

При использовании упрощенных директив определения сегментов можно использовать некоторые предопределенные метки. Метка @FileName представляет собой имя ассемблируемого файла, @curseg — имя сегмента, в который Турбо Ассемблер в данный момент выполняет ассемблирование, @CodeSize — это 0 для моделей памяти с ближними сегментами кода (сверхмалой, малой и компактная), 1 — для ком-пактной и большой модели памяти и 2 — для сверхбольшой модели. Аналогично, @DataSize = 0 в модели памяти с сегментами данных ближнего типа (сверхмалая, малая и средняя модель памяти), 1 в компактной и большой моделях и 2 — для сверхбольшой модели.

Загрузка...