SEGMENT
Define um segmento de programa chamado name com atributos de segmento
Sintaxe
nome SEGMENT ⟦READONLY⟧ ⟦align⟧ ⟦combine⟧ ⟦use⟧ ⟦characteristics⟧ ALIAS(string) ⟦'class'⟧
statements
nome ENDS
Parâmetros
align
O intervalo de endereços de memória dos quais um endereço inicial para o segmento pode ser selecionado. O tipo de alinhamento pode ser qualquer um dos seguintes:
Tipo de alinhamento | Endereço inicial |
---|---|
BYTE | Próximo endereço de byte disponível. |
WORD | Próximo endereço de palavra disponível (2 bytes por palavra). |
DWORD | Próximo endereço de palavra dupla disponível (4 bytes por palavra dupla). |
PARA | Próximo endereço de parágrafo disponível (16 bytes por parágrafo). |
PAGE | Próximo endereço de página disponível (256 bytes por página). |
ALIGN(n) | Próximo endereço de nº byte disponível. Consulte a seção de comentários para obter mais informações. |
Se esse parâmetro não for especificado, PARA será usado por padrão.
combine (somente MASM de 32 bits.)
PUBLIC, STACK, COMMON, MEMORY, ATaddress, PRIVATE
use (somente MASM de 32 bits)
USE16, USE32, FLAT
characteristics
INFO, READ, WRITE, EXECUTE, SHARED, NOPAGE, NOCACHE e DISCARD
Eles têm suporte somente para COFF e correspondem às características da seção COFF de nome semelhante (por exemplo, SHARED corresponde a IMAGE_SCN_MEM_SHARED). READ define o sinalizador IMAGE_SCN_MEM_READ. O sinalizador READONLY obsoleto fez com que a seção limpasse o sinalizador IMG_SCN_MEM_WRITE. Se algum characteristics for definido, as características padrão não serão usadas e apenas os sinalizadores especificados pelo programador estarão em vigor.
cadeia de caracteres
Essa cadeia de caracteres é usada como o nome da seção no objeto COFF emitido. Cria várias seções com o mesmo nome externo, com nomes de segmento MASM distintos.
Não dá suporte para /omf.
class
Designa como os segmentos devem ser combinados e ordenados no arquivo montado. Os valores típicos são 'DATA'
, 'CODE'
, 'CONST'
e 'STACK'
Comentários
Para ALIGN(n)
, n pode ser qualquer potência de 2 de 1 a 8192; não dá suporte a /omf.