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 e ARM, funcionam conforme documentado no Guia de Referência de armasm do Compilador do ARM.

    No assembler do Microsoft ARM, THUMB indica que uma seção CODE contém código Thumb e é o padrão para seções CODE. 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 e GLOBAL

    Especifica as exportações usando esta sintaxe:

    EXPORT|GLOBALsymbol{[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 de EXPORT.

  • EXPORTAS

    Sem suporte.

  • FRAME

    Não há suporte.

  • FUNCTION e PROC

    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 e EXTERN

    Especifica as importações usando esta sintaxe:

    IMPORT|EXTERNsymbol{, WEAKalias{, TYPEt}}

    symbol é o nome do símbolo a ser importado.

    Se WEAKalias for especificado, ele indicará que symbol é 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 a alias.

    Se TYPEt for especificado, então t indicará como o vinculador deve tentar resolver symbol. Estes valores para t são possíveis:

    Valor Descrição
    1 Não pesquise bibliotecas por symbol.
    2 Pesquise bibliotecas por symbol.
    3 symbol é um alias para alias (padrão).

    EXTERN é um sinônimo para IMPORT, exceto que symbol é 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

    Sem 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