Direktivy assembleru ARM
Obecně platí, že assembler Microsoft ARM používá jazyk sestavení ARM, který je zdokumentovaný v referenční příručce k kompilátoru ARM. Implementace některých direktiv sestavení od společnosti Microsoft se však liší od direktiv sestavení ARM. Tento článek vysvětluje rozdíly.
Implementace direktiv sestavení ARM od Microsoftu
AREAAssembler Microsoft ARM podporuje tyto
AREAatributy:ALIGN, , , , , , , ,CODE,CODEALIGNDATANOINITREADONLYREADWRITETHUMBARM.Všechny s
THUMBvýjimkouARMa fungují, jak je zdokumentované v referenční příručceTHUMBV assembleru Microsoft ARM označuje, že
THUMBoddíl obsahuje kryptografický kód a je výchozíCODEhodnotou proCODEoddíly.ARMoznačuje, že oddíl obsahuje kód ARM.ATTRNepodporováno
CODE16Nepodporuje se, protože implikuje syntaxi pre-UAL Thumb, kterou assembler Microsoft ARM neumožňuje. Místo toho
THUMBpoužijte direktivu spolu se syntaxí UAL.COMMONSpecifikace zarovnání pro společnou oblast není podporována.
DCDONepodporováno
DN,QN,SNSpecifikace typu nebo dráhy v aliasu registru se nepodporuje.
ENTRYNepodporováno
EQUSpecifikace typu definovaného symbolu není podporována.
EXPORTaGLOBALUrčuje exporty pomocí této syntaxe:
EXPORT|GLOBALsymbol{[type]}symbolje symbol, který se má exportovat.[type], pokud je zadán, může být buď k označení, že symbol odkazuje na data, nebo k označení, že[DATA][FUNC]symbol odkazuje na kód.GLOBALje synonymem proEXPORT.EXPORTASNepodporováno
FRAMENepodporováno
FUNCTIONaPROCSyntaxe sestavení umožňuje určit vlastní konvenci volání pro procedury: zobrazíte seznam registrů, které jsou volajícím uložením, a registrů, které jsou volané-uložení. Zatímco však assembler Microsoft ARM přijímá syntaxi, ignoruje seznamy registrů. Informace o ladění vytvořené assemblerem podporují pouze výchozí konvenci volání.
IMPORTaEXTERNUrčuje importy pomocí této syntaxe:
IMPORT|EXTERNsymbol{, WEAKalias{, TYPEt}}symbolje název symbolu, který se má importovat.Pokud
WEAKaliasje zadaný parametr , znamená to,symbolže je slabý externí. Pokud se definice pro něj v době propojení nenašla, všechny odkazy na něj místo toho vytvoří vazbu naalias.Pokud
TYPEtje zadaný parametr ,turčuje, jak se má linker pokusit přeložitsymbol. Možné jsouttyto hodnoty pro :Hodnota Popis 1 V knihovnách nehledat symbol.2 V knihovnách vyhledejte symbol.3 symbolje alias proalias(výchozí).EXTERNje synonymem pro , s tím rozdílem, že je importován pouze v případě, že jsou odkazy na nějIMPORTsymbolv aktuálním sestavení.MACROPoužití proměnné k blokování kódu podmínky makra není podporováno. Výchozí hodnoty parametrů makra nejsou podporovány.
NOFPNepodporováno
OPT,TTL,SUBTNepodporuje se, protože assembler Microsoft ARM nevytváří výpisy.
PRESERVE8Nepodporováno
RELOCRELOC nmůže postupovat pouze podle instrukce nebo direktivy definice dat. Neexistuje žádný "anonymní symbol", který by bylo možné přemístit.REQUIRENepodporováno
REQUIRE8Nepodporováno
THUMBXNepodporuje se, protože assembler Microsoft ARM nepodporuje sadu instrukcí Thumb-2EE.
Viz také
Referenční informace k sestavě Command-Line ARM
Diagnostické zprávy assembleru ARM