SEGMENT
定义名为 name、具有段属性的程序段
语法
name SEGMENT ⟦READONLY⟧ ⟦align⟧ ⟦combine⟧ ⟦use⟧ ⟦characteristics⟧ ALIAS(string) ⟦'class'⟧
statements
name ENDS
参数
align
可以从中选择段起始地址的内存地址范围。 可以采用以下任何一种对齐类型:
对齐类型 | 开始地址 |
---|---|
BYTE | 下一个可用的字节地址。 |
WORD | 下一个可用的字地址(每字 2 字节)。 |
DWORD | 下一个可用的双字地址(每双字 4 字节)。 |
PARA | 下一个可用的段落地址(每个段落 16 字节)。 |
PAGE | 下一个可用的页面地址(每页 256 字节)。 |
ALIGN(n) | 下一个可用的 nth 字节地址。 有关详细信息,请参阅备注部分。 |
如果未指定此参数,则默认使用 PARA。
combine (仅限 32 位 MASM)
PUBLIC, STACK, COMMON, MEMORY, ATaddress, PRIVATE
use (仅限 32 位 MASM)
USE16、USE32、FLAT
特征
INFO、READ、WRITE、EXECUTE、SHARED、NOPAGE、NOCACHE 和 DISCARD
COFF 仅支持这些属性,对应于类似名称的 COFF 分区特征(例如 SHARED 对应于 IMAGE_SCN_MEM_SHARED)。 READ 设置 IMAGE_SCN_MEM_READ 标志。 过时的 READONLY 标志导致分区清除 IMG_SCN_MEM_WRITE 标志。 如果设置了任何特征,则不使用默认特征,并且只有程序员指定的标志生效。
字符串
此字符串用作发出的 COFF 对象中的分区名称。 使用不同的 MASM 段名称创建具有相同外部名称的多个分区。
/omf 不支持。
class
指定应在汇编文件中组合和排列段的方式。 典型值为 'DATA'
、'CODE'
、'CONST'
和 'STACK'
备注
对于 ALIGN(n)
,n 可以是 2(从 1 到 8192)的幂数;不支持 /omf。