Diretivas do assembler ARM
Em geral, o assembler do Microsoft ARM usa a linguagem de assembly do ARM, que está documentada no Guia de Referência de armasm do Compilador do ARM. No entanto, as implementações da Microsoft de algumas diretivas de assembly diferem das diretivas de assembly do ARM. Este artigo explica as diferenças.
Implementações da Microsoft de diretivas de assembly do ARM
AREA
O assembler do Microsoft ARM dá suporte a estes atributos
AREA
:ALIGN
,CODE
,CODEALIGN
,DATA
,NOINIT
,READONLY
,READWRITE
,THUMB
,ARM
.Todos, exceto
THUMB
eARM
, funcionam conforme documentado no Guia de Referência de armasm do Compilador do ARM.No assembler do Microsoft ARM,
THUMB
indica que uma seçãoCODE
contém código Thumb e é o padrão para seçõesCODE
.ARM
indica que a seção contém código ARM.ATTR
Não há suporte.
CODE16
Não há suporte porque implica sintaxe Thumb pré-UAL, que o assembler do Microsoft ARM não permite. Em vez disso, use a diretiva
THUMB
, juntamente com a sintaxe UAL.COMMON
Não há suporte para a especificação de um alinhamento para a região comum.
DCDO
Não há suporte.
DN
,QN
,SN
Não há suporte para a especificação de um tipo ou uma faixa no alias de registro.
ENTRY
Não há suporte.
EQU
Não há suporte para a especificação de um tipo para o símbolo definido.
EXPORT
eGLOBAL
Especifica as exportações usando esta sintaxe:
EXPORT
|GLOBAL
symbol
{[type]
}symbol
é o símbolo a ser exportado.[type]
, se especificado, pode ser[DATA]
para indicar que o símbolo aponta para dados ou[FUNC]
para indicar que o símbolo aponta para código.GLOBAL
é sinônimo deEXPORT
.EXPORTAS
Não há suporte.
FRAME
Não há suporte.
FUNCTION
ePROC
A sintaxe do assembly permite que você especifique uma convenção de chamada personalizada nos procedimentos: você lista os registros que são salvos pelo chamador e os que são salvos pelo computador chamado. No entanto, enquanto o assembler do Microsoft ARM aceita a sintaxe, ele ignora as listas de registros. As informações de depuração produzidas pelo assembler dão suporte apenas à convenção de chamada padrão.
IMPORT
eEXTERN
Especifica as importações usando esta sintaxe:
IMPORT
|EXTERN
symbol
, WEAK
alias
{ {, TYPE
t
}}symbol
é o nome do símbolo a ser importado.Se
WEAK
alias
for especificado, indica quesymbol
é um externo fraco. Se uma definição para isso não for encontrada no tempo de vinculação, todas as referências serão associadas aalias
.Se
TYPE
t
for especificado,t
indica como o vinculador deve tentar resolversymbol
. Estes valores parat
são possíveis:Valor Description 1 Não pesquise bibliotecas por symbol
.2 Pesquise bibliotecas por symbol
.3 symbol
é um alias paraalias
(padrão).EXTERN
é um sinônimo paraIMPORT
, exceto quesymbol
é importado somente se há referências a ele no assembly atual.MACRO
Não há suporte para o uso de uma variável para manter o código de condição de uma macro. Não há suporte para valores padrão para parâmetros de macro.
NOFP
Não há suporte.
OPT
,TTL
,SUBT
Não há suporte, pois o assembler do Microsoft ARM não produz listagens.
PRESERVE8
Não há suporte.
RELOC
RELOC n
só pode seguir uma instrução ou uma diretiva de definição de dados. Não há nenhum "símbolo anônimo" que possa ser realocado.REQUIRE
Não há suporte.
REQUIRE8
Não há suporte.
THUMBX
Não há suporte, pois o assembler do Microsoft ARM não dá suporte ao conjunto de instruções Thumb-2EE.
Confira também
Referência de linha de comando do assembler ARM
Mensagens de diagnóstico do assembler ARM