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
,READWRITE
NOINIT
DATA
READONLY
CODEALIGN
, , .ARM
THUMB
Wszystkie z wyjątkiem
THUMB
iARM
działają zgodnie z dokumentacją w przewodniku referencyjnym arm compiler armasm.W asemblerze usługi Microsoft ARM wskazuje,
THUMB
żeCODE
sekcja zawiera kod kciuka i jest wartością domyślną dlaCODE
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
, ,QN
SN
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
iGLOBAL
Określa eksporty przy użyciu tej składni:
EXPORT
|GLOBAL
symbol
{[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 elementuEXPORT
.EXPORTAS
Nieobsługiwane.
FRAME
Nieobsługiwane.
FUNCTION
iPROC
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
iEXTERN
Określa import przy użyciu tej składni:
IMPORT
|EXTERN
symbol
{ {, TYPE
, WEAK
alias
t
}}symbol
to nazwa symbolu, który ma zostać zaimportowany.Jeśli
WEAK
alias
zostanie określony, oznacza to, żesymbol
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 elementemalias
.Jeśli
TYPE
t
parametr jest określony, wskazujet
, jak konsolidator powinien spróbować rozwiązać problemsymbol
. Te wartościt
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 ,IMPORT
z 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
, ,TTL
SUBT
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