Поделиться через


SEGMENT

Определяет сегмент программы, называемый именем с атрибутами сегмента

Синтаксис

name SEGMENT ⟦READONLY⟧ ⟦align⟧ ⟦combine ⟦use⟧ ⟦characteristics⟧ ALIAS(string)'class'⟧
Заявления
имя ENDS

Параметры

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

Выравнивание типа Начальный адрес
BYTE Следующий доступный байтовый адрес.
WORD Следующий доступный адрес слова (2 байта на слово).
DWORD Далее доступен двойной адрес слова (4 байта для каждого двойного слова).
ПУНКТ Следующий доступный адрес абзаца (16 байт на абзац).
PAGE Следующий доступный адрес страницы (256 байт на страницу).
ALIGN(n) Далее доступен n-thбайт-адрес. Дополнительные сведения см. в разделе "Примечания".

Если этот параметр не указан, параметр PARA используется по умолчанию.

объединение (только 32-разрядная версия MASM)
PUBLIC, STACK, COMMON, MEMORY, ATaddress, PRIVATE

use (только 32-разрядная версия MASM)
USE16, USE32, FLAT

Характеристики
СВЕДЕНИЯ, ЧТЕНИЕ, ЗАПИСЬ, ВЫПОЛНЕНИЕ, ОБЩИЙ ДОСТУП, NOPAGE, NOCACHE и ОТМЕНА

Они поддерживаются только для COFF и соответствуют характеристикам раздела COFF аналогичного имени (например, SHARED соответствует IMAGE_SCN_MEM_SHARED). READ задает флаг IMAGE_SCN_MEM_READ. Устаревший флаг READONLY вызвал очистку флага IMG_SCN_MEM_WRITE. Если заданы какие-либо характеристики, характеристики по умолчанию не используются, и применяются только указанные программистом флаги.

string
Эта строка используется в качестве имени раздела в создаваемом объекте COFF. Создает несколько разделов с одинаковым внешним именем с отдельными именами сегментов MASM.

Не поддерживается с /omf.

class
Указывает, как сегменты должны быть объединены и упорядочены в собранном файле. Типичные значения: , 'DATA''CODE''CONST' и'STACK'

Замечания

Для ALIGN(n), n может быть любой мощностью от 2 от 1 до 8192; не поддерживается с /omf.

См. также

Справочник по директивам
Грамматика MASM BNF