Udostępnij za pośrednictwem


Dokumentacja wiersza polecenia asemblera ARM

Asemblerzy arm, armasm i armasm64 firmy Microsoft obsługują kilka opcji wiersza polecenia. Domyślnie armasm tworzy język zestawu THUMB ARMv7 w implementacji microsoft common Object File Format (COFF). Asembler armasm64 tworzy kod obiektu COFF dla elementów docelowych ARM64 i ARM64EC. Konsolidator może łączyć obiekty kodu COFF generowane zarówno przez asembler ARM, jak i kompilator C/C++. Może ona łączyć się z bibliotekami obiektów utworzonymi przez bibliotekę biblioteki.

Składnia

armasm[opcje] source_file object_file
armasm [opcje] source_file

armasm64[opcje] source_file object_file
armasm64 [opcje] source_file

Parametry

Opcje
Kombinacja zera lub większej liczby następujących opcji:

  • -16
    Dostępne tylko w armasm. Zmontuj źródło jako 16-bitowe instrukcje dotyczące kciuka. Ta opcja jest domyślnie zaznaczona.

  • -32
    Dostępne tylko w armasm. Złóż źródło jako 32-bitowe instrukcje arm.

  • -coff_thumb2_only
    Dostępne tylko w armasm. Zezwalaj tylko na kod Thumb-2.

  • -errorReport: opcja
    Ta opcja jest przestarzały. W systemie Windows Vista i nowszych raportowanie błędów jest kontrolowane przez ustawienia Raportowanie błędów systemu Windows (WER).

  • -errors Pod nazwą
    -e Pod nazwą
    Przekieruj komunikaty o błędach i ostrzeżeniach do nazwy pliku. Domyślnie te komunikaty są wysyłane do usługi stdout.

  • -funcOverride: function_name
    Dostępne tylko w armasm64. Emitowanie obsługi zastępowania funkcji dla function_name.

  • -g
    Generowanie informacji o debugowaniu.

  • -gh:SHA1
    Użyj algorytmu skrótu kryptograficznego SHA-1, aby wygenerować sumę kontrolną każdego pliku źródłowego w informacjach debugowania. Zastępuje .-gh:SHA256

  • -gh:SHA256
    Użyj algorytmu skrótu kryptograficznego SHA-256, aby wygenerować sumę kontrolną każdego pliku źródłowego w informacjach debugowania. Ta opcja jest domyślnie włączona w programie Visual Studio 2022 w wersji 17.0 lub nowszej.

  • -guard:ehcont[-]
    Wygeneruj posortowaną listę względnych adresów wirtualnych (RVA) wszystkich prawidłowych celów kontynuacji wyjątku dla pliku binarnego. Jest on używany w czasie wykonywania do NtContinue sprawdzania poprawności wskaźnika instrukcji i SetThreadContext . Domyślnie -guard:ehcont jest wyłączona i musi być jawnie włączona. Aby jawnie wyłączyć tę opcję, użyj polecenia -guard:ehcont-. Ta opcja jest dostępna w programie Visual Studio 2019 w wersji 16.7 lub nowszej. Ta funkcja jest obsługiwana w przypadku procesów 64-bitowych w 64-bitowym systemie operacyjnym.

  • -help
    -h
    Wyświetl komunikat pomocy wiersza polecenia.

  • -i dir[;]
    Dodaj co najmniej jeden określony katalog do ścieżki wyszukiwania dołączania. Rozdziel katalogi przy użyciu średnika (;).

  • -ignore warning_number
    Wyłącz określony numer ostrzeżenia. Aby uzyskać możliwe wartości, zobacz Komunikaty diagnostyczne asemblera ARM.

  • -list list_file
    Utwórz szczegółową listę wygenerowanego języka zestawu do list_file. Parametr list_file jest opcjonalny. Jeśli zostanie pominięty, asembler dołącza .lst do podstawowej nazwy source_file , aby utworzyć plik listy.

  • -machine maszyna
    Określ typ maszyny do ustawienia w nagłówku PE. W armasm możliwe wartości maszyny to:

    • ARM — ustawia typ maszyny na IMAGE_FILE_MACHINE_ARMNT. Ta opcja jest domyślnie zaznaczona.
    • THUMB — ustawia typ maszyny na IMAGE_FILE_MACHINE_THUMB.

    W armasm64 możliwe wartości to:

    • ARM64 — ustawia typ maszyny na IMAGE_FILE_MACHINE_ARM64. Ta opcja jest domyślnie zaznaczona.
    • ARM64EC — ustawia typ maszyny na IMAGE_FILE_MACHINE_ARM64EC.
  • -noesc
    -noe
    Ignoruj znaki specjalne w stylu C, takie jak \n lub \t.

  • -nologo
    Pomiń baner praw autorskich.

  • -nowarn
    -now
    Wyłącz wszystkie komunikaty ostrzegawcze.

  • -o object_file
    Określ nazwę pliku obiektu (danych wyjściowych). Opcja jest opcjonalna -o . Zamiast tego można określić nazwę pliku obiektu jako ostatni element wiersza polecenia.

  • -oldit
    Dostępne tylko w armasm. Generowanie bloków IT w stylu ARMv7. Domyślnie są generowane bloki IT zgodne z protokołem ARMv8.

  • -predefine dyrektywa
    -pd dyrektywa
    Określ dyrektywę SETA, SETL lub SETS, aby wstępnie zdefiniować symbol.
    Przykład: armasm.exe -predefine "COUNT SETA 150" source.asm
    Aby uzyskać więcej informacji, zobacz Arm Compiler armasm Reference Guide (Podręcznik obsługi arm kompilatora armasm).

  • -sourcelink: sourcelink_filename
    sourcelink_filename określa plik konfiguracji w formacie JSON zawierający proste mapowanie lokalnych ścieżek plików na adresy URL dla plików źródłowych do wyświetlenia w debugerze. Aby uzyskać więcej informacji na temat formatu tego pliku, zobacz Schemat JSON linku źródłowego. Link źródłowy to niezależny system kontroli kodu źródłowego umożliwiający debugowanie źródła dla plików binarnych. Link źródłowy jest obsługiwany w przypadku natywnych plików binarnych, począwszy od programu Visual Studio 2017 w wersji 15.8. Aby zapoznać się z omówieniem linku źródłowego, zobacz Link źródłowy. Aby uzyskać informacje na temat używania linku źródłowego w projektach oraz sposobu generowania pliku SourceLink w ramach projektu, zobacz Using Source Link (Korzystanie z linku źródłowego).

  • -via Pod nazwą
    Przeczytaj dodatkowe argumenty wiersza polecenia z nazwy pliku.

source_file
Nazwa pliku źródłowego.

object_file
Ostatni element wiersza polecenia może określać nazwę pliku obiektu (danych wyjściowych). Jeśli zostanie pominięta i nie zostanie określona żadna -o opcja, asembler dołącza .obj do podstawowej nazwy source_file w celu utworzenia pliku obiektu.

Uwagi

W poniższym przykładzie pokazano, jak używać armasm w typowym scenariuszu. Najpierw użyj narzędzia armasm, aby skompilować plik źródłowy języka zestawu (asm) do pliku obiektu (.obj). Następnie użyj kompilatora C wiersza polecenia CL, aby skompilować plik źródłowy (c), a także określić opcję konsolidatora, aby połączyć plik obiektu usługi ARM.

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

Zobacz też

Komunikaty diagnostyczne asemblera ARM
Dyrektywy asemblera ARM