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.