Referência de linha de comando do assembler ARM

Os assemblers do Microsoft ARM, armasm e armasm64, dão suporte a várias opções de linha de comando. Por padrão, armasm monta a linguagem assembly ARMv7 Thumb na implementação da Microsoft do formato COFF. O assembler armasm64 cria código de objeto COFF para destinos ARM64 e ARM64EC. O vinculador pode vincular objetos de código COFF produzidos pelo assembler ARM e pelo compilador C/C++. Ele pode vincular as bibliotecas de objetos criadas pelo arquivador.

Sintaxe

armasm [opções] source_file object_file
armasm [options] source_file

armasm64 [opções] source_file object_file
armasm64 [options] source_file

Parâmetros

options
Uma combinação de zeros ou mais das seguintes opções:

  • -16
    Disponível somente em armasm. Monta a origem como instruções de 16 bits do Thumb. Essa é a opção padrão.

  • -32
    Disponível somente em armasm. Monta a origem como instruções de 32 bits do ARM.

  • -coff_thumb2_only
    Disponível somente em armasm. Permite somente código Thumb-2.

  • -errorReport:opção
    Essa opção foi preterida. Desde o Windows Vista, o relatório de erros é controlado pelas configurações WER (Relatório de Erros do Windows).

  • -errors filename
    -e filename
    Redireciona mensagens de erro e aviso para filename. Por padrão, essas mensagens são enviadas para stdout.

  • -funcOverride:function_name
    Disponível somente em armasm64. Emite suporte à substituição de função para function_name.

  • -g
    Gera as informações de depuração.

  • -gh:SHA1
    Usa o algoritmo de hash criptográfico SHA-1 para gerar uma soma de verificação de cada arquivo de origem em informações de depuração. Substitui -gh:SHA256.

  • -gh:SHA256
    Usa o algoritmo de hash criptográfico SHA-256 para gerar uma soma de verificação de cada arquivo de origem em informações de depuração. Essa opção está ativada por padrão no Visual Studio 2022 versão 17.0 e posteriores.

  • -guard:ehcont[-]
    Gera uma lista classificada dos RVAs (endereços virtuais relativos) de todos os destinos de continuação de tratamento de exceção válidos para um binário. Ela é usada durante o runtime para a validação do ponteiro de instrução NtContinue e SetThreadContext. Por padrão, -guard:ehcont está desativado e deve ser habilitado explicitamente. Para desabilitar explicitamente essa opção, use -guard:ehcont-. Essa opção está disponível no Visual Studio 2019 versão 16.7 e posteriores. O recurso tem suporte para processos de 64 bits em um sistema operacional de 64 bits.

  • -help
    -h
    Imprimir a mensagem de ajuda da linha de comando.

  • -idir[; dir]
    Adiciona um ou mais diretórios especificados para inclusão do caminho de pesquisa. Separa os diretórios usando um ponto e vírgula (;).

  • -ignorewarning_number
    Desabilita o número de aviso especificado. Para obter os valores possíveis, confira as mensagens de diagnóstico do assembler do ARM.

  • -listlist_file
    Cria uma listagem detalhada da linguagem assembly gerada para list_file. O parâmetro list_file é opcional. Se ele for omitido, o montador acrescentará .lst ao nome base de source_file para criar o arquivo de listagem.

  • -machinemáquina
    Especifica o tipo de computador a ser definido no cabeçalho PE. Em armasm, os valores possíveis para machine são:

    • ARM: define o tipo de computador como IMAGE_FILE_MACHINE_ARMNT. Essa é a opção padrão.
    • THUMB: define o tipo de computador como IMAGE_FILE_MACHINE_THUMB.

    Em armasm64, os valores possíveis são:

    • ARM64: define o tipo de computador como IMAGE_FILE_MACHINE_ARM64. Essa é a opção padrão.
    • ARM64ec: define o tipo de computador como IMAGE_FILE_MACHINE_ARM64EC.
  • -noesc
    -noe
    Ignora caracteres especiais com escape no estilo C, como \n ou \t.

  • -nologo
    Suprime a mensagem da faixa de direitos autorais.

  • -nowarn
    -now
    Desabilita todas as mensagens de aviso.

  • -oobject_file
    Especifica o nome do arquivo de objeto (saída). A opção -o é opcional; em vez disso, você pode especificar um nome de arquivo de objeto como o último elemento da linha de comando.

  • -oldit
    Disponível somente em armasm. Gera blocos de TI no estilo ARMv7. Por padrão, blocos de TI compatíveis com ARMv8 são gerados.

  • -predefinediretiva
    -pddiretiva
    Especifica uma diretiva SETA, SETL ou SETS para predefinir um símbolo.
    Exemplo: armasm.exe -predefine "COUNT SETA 150" source.asm
    Para obter mais informações, confira o Guia de referência do armasm do compilador do ARM.

  • -sourcelink:sourcelink_filename
    sourcelink_filename especifica um arquivo de configuração formatado por JSON que contém um mapeamento simples de caminhos de arquivo local para URLs para arquivos de origem a serem exibidos no depurador. Para obter mais informações sobre o formato desse arquivo, confira Esquema JSON de Source Link. Source Link é um sistema agnóstico de controle do código-fonte e linguagem de programação para fornecer depuração de código-fonte para binários. O Source Link é compatível com binários nativos do Visual Studio 2017 versão 15.8 e posteriores. Para obter uma visão geral do Source Link, confira Source Link. Para obter informações sobre como usar Source Link em seus projetos e como gerar o arquivo SourceLink como parte do projeto, confira Usando o Source Link.

  • -via filename
    Lê argumentos de linha de comando extras de filename.

source_file
O nome do arquivo de origem.

object_file
O último elemento da linha de comando pode especificar o nome do arquivo de objeto (saída). Se ele for omitido e nenhuma opção -o for especificada, o montador acrescentará .obj ao nome base de source_file para criar o arquivo de objeto.

Comentários

O exemplo a seguir demonstra como usar armasm em um cenário típico. Primeiro, use armasm para compilar um arquivo de origem de linguagem assembly (.asm) em um arquivo de objeto (.obj). Depois, use o compilador C da linha de comando CL para compilar um arquivo de origem (.c) e também especifique a opção do vinculador para vincular o arquivo de objeto ARM.

armasm -o myasmcode.obj myasmcode.asm 
cl myccode.c /link myasmcode.obj

Confira também

Mensagens de diagnóstico do ARM Assembler
Diretivas do ARM Assembler