Udostępnij za pośrednictwem


Dyrektywy ARM dotycząca asemblera

Ogólnie rzecz biorąc, asembler usługi Microsoft ARM używa języka zestawu ARM, który jest udokumentowany w przewodniku odniesienia arm compiler armasm. Jednak implementacje niektórych dyrektyw zestawów firmy Microsoft różnią się od dyrektyw zestawu ARM. W tym artykule wyjaśniono różnice.

Implementacje dyrektyw zestawu usługi ARM firmy Microsoft

  • AREA

    Asembler usługi Microsoft ARM obsługuje następujące AREA atrybuty: ALIGN, , CODE, READWRITENOINITDATAREADONLYCODEALIGN, , . ARMTHUMB

    Wszystkie z wyjątkiem THUMB i ARM działają zgodnie z dokumentacją w przewodniku referencyjnym arm compiler armasm.

    W asemblerze usługi Microsoft ARM wskazuje, THUMB że CODE sekcja zawiera kod kciuka i jest wartością domyślną dla CODE sekcji. ARM wskazuje, że sekcja zawiera kod arm.

  • ATTR

    Nieobsługiwane.

  • CODE16

    Nieobsługiwane, ponieważ oznacza to składnię kciuka wstępnego dostępu użytkowników, na którą nie zezwala asembler usługi Microsoft ARM. THUMB Zamiast tego należy użyć dyrektywy wraz ze składnią rejestrowania dostępu użytkowników.

  • COMMON

    Specyfikacja wyrównania dla wspólnego regionu nie jest obsługiwana.

  • DCDO

    Nieobsługiwane.

  • DN, , QNSN

    Specyfikacja typu lub pasa ruchu na aliasie rejestru nie jest obsługiwana.

  • ENTRY

    Nieobsługiwane.

  • EQU

    Specyfikacja typu zdefiniowanego symbolu nie jest obsługiwana.

  • EXPORT i GLOBAL

    Określa eksporty przy użyciu tej składni:

    EXPORT|GLOBALsymbol{[type]}

    symbol to symbol do wyeksportowania. [type], jeśli zostanie określony, może wskazywać [DATA] , że symbol wskazuje dane lub [FUNC] wskazuje, że symbol wskazuje kod. GLOBAL jest synonimem dla elementu EXPORT.

  • EXPORTAS

    Nieobsługiwane.

  • FRAME

    Nieobsługiwane.

  • FUNCTION i PROC

    Składnia zestawu umożliwia określenie niestandardowej konwencji wywoływania procedur: wyświetlasz listę rejestrów, które są wywoływane-zapisz, oraz tych, które są wywoływane-zapisz. Jednak gdy asembler usługi Microsoft ARM akceptuje składnię, ignoruje listy rejestrów. Informacje debugowania tworzone przez asemblera obsługują tylko domyślną konwencję wywoływania.

  • IMPORT i EXTERN

    Określa import przy użyciu tej składni:

    IMPORT|EXTERNsymbol{ {, TYPE, WEAK aliast}}

    symbol to nazwa symbolu, który ma zostać zaimportowany.

    Jeśli WEAK alias zostanie określony, oznacza to, że symbol jest słaby zewnętrzne. Jeśli definicja nie zostanie znaleziona w czasie połączenia, wszystkie odwołania do niej zostaną powiązane zamiast tego z elementem alias.

    Jeśli TYPE t parametr jest określony, wskazuje t , jak konsolidator powinien spróbować rozwiązać problem symbol. Te wartości t są możliwe:

    Wartość Popis
    1 Nie wyszukuj bibliotek dla elementu symbol.
    2 Wyszukaj biblioteki dla elementu symbol.
    3 symbol jest aliasem ( alias wartość domyślna).

    EXTERN jest synonimem , IMPORTz tą różnicą, że jest importowany tylko wtedy, symbol gdy istnieją odwołania do niego w bieżącym zestawie.

  • MACRO

    Użycie zmiennej do przechowywania kodu warunku makra nie jest obsługiwane. Wartości domyślne parametrów makra nie są obsługiwane.

  • NOFP

    Nieobsługiwane.

  • OPT, , TTLSUBT

    Nieobsługiwane, ponieważ asembler usługi Microsoft ARM nie generuje list.

  • PRESERVE8

    Nieobsługiwane.

  • RELOC

    RELOC n może postępować zgodnie z instrukcjami lub dyrektywą definicji danych. Nie ma "symbolu anonimowego", który można przenieść.

  • REQUIRE

    Nieobsługiwane.

  • REQUIRE8

    Nieobsługiwane.

  • THUMBX

    Nieobsługiwane, ponieważ asembler arm firmy Microsoft nie obsługuje zestawu instrukcji Thumb-2EE.

Zobacz też

Dokumentacja wiersza polecenia asemblera ARM
Komunikaty diagnostyczne asemblera ARM