Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Generally, the Microsoft ARM assembler uses the ARM assembly language, which is documented in the ARM Compiler armasm Reference Guide. However, the Microsoft implementations of some assembly directives differ from the ARM assembly directives. This article explains the differences.
Microsoft Implementations of ARM Assembly Directives
- AREA- The Microsoft ARM assembler supports these - AREAattributes:- ALIGN,- CODE,- CODEALIGN,- DATA,- NOINIT,- READONLY,- READWRITE,- THUMB,- ARM.- All except - THUMBand- ARMwork as documented in the ARM Compiler armasm Reference Guide.- In the Microsoft ARM assembler, - THUMBindicates that a- CODEsection contains Thumb code, and is the default for- CODEsections.- ARMindicates that the section contains ARM code.
- ATTR- Not supported. 
- CODE16- Not supported because it implies pre-UAL Thumb syntax, which the Microsoft ARM assembler doesn't allow. Use the - THUMBdirective instead, along with UAL syntax.
- COMMON- Specification of an alignment for the common region isn't supported. 
- DCDO- Not supported. 
- DN,- QN,- SN- Specification of a type or a lane on the register alias isn't supported. 
- ENTRY- Not supported. 
- EQU- Specification of a type for the defined symbol isn't supported. 
- EXPORTand- GLOBAL- Specifies exports using this syntax: - EXPORT|- GLOBAL- symbol{- [type]}- symbolis the symbol to be exported.- [type], if specified, can be either- [DATA]to indicate that the symbol points to data or- [FUNC]to indicate that the symbol points to code.- GLOBALis a synonym for- EXPORT.
- EXPORTAS- Not supported. 
- FRAME- Not supported. 
- FUNCTIONand- PROC- The assembly syntax lets you specify a custom calling convention on procedures: you list the registers that are caller-save, and the ones that are callee-save. However, while the Microsoft ARM assembler accepts the syntax, it ignores the register lists. The debug information that's produced by the assembler supports only the default calling convention. 
- IMPORTand- EXTERN- Specifies imports using this syntax: - IMPORT|- EXTERN- symbol{- , WEAK- alias{- , TYPE- t}}- symbolis the name of the symbol to be imported.- If - WEAK- aliasis specified, it indicates that- symbolis a weak external. If a definition for it isn't found at link time, then all references to it bind instead to- alias.- If - TYPE- tis specified, then- tindicates how the linker should attempt to resolve- symbol. These values for- tare possible:- Value - Description - 1 - Don't search libraries for - symbol.- 2 - Search libraries for - symbol.- 3 - symbolis an alias for- alias(default).- EXTERNis a synonym for- IMPORT, except that- symbolis imported only if there are references to it in the current assembly.
- MACRO- The use of a variable to hold the condition code of a macro isn't supported. Default values for macro parameters aren't supported. 
- NOFP- Not supported. 
- OPT,- TTL,- SUBT- Not supported, because the Microsoft ARM assembler doesn't produce listings. 
- PRESERVE8- Not supported. 
- RELOC- RELOC ncan only follow an instruction or a data definition directive. There's no "anonymous symbol" that can be relocated.
- REQUIRE- Not supported. 
- REQUIRE8- Not supported. 
- THUMBX- Not supported, because the Microsoft ARM assembler doesn't support the Thumb-2EE instruction set. 
See also
ARM Assembler Command-Line Reference
ARM Assembler Diagnostic Messages