You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/assembler/arm/arm-assembler-directives.md
+77-53Lines changed: 77 additions & 53 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,89 +16,113 @@ For the most part, the Microsoft ARM assembler uses the ARM assembly language, w
16
16
17
17
## Microsoft Implementations of ARM Assembly Directives
18
18
19
-
`AREA`<br/>
20
-
The Microsoft ARM assembler supports these `AREA` attributes: `ALIGN`, `CODE`, `CODEALIGN`, `DATA`, `NOINIT`, `READONLY`, `READWRITE`, `THUMB`, `ARM`.
19
+
- AREA
21
20
22
-
All except `THUMB` and `ARM` work as documented in the [ARM Compiler armasm Reference Guide](http://infocenter.arm.com/help/topic/com.arm.doc.dui0802b/index.html).
21
+
The Microsoft ARM assembler supports these `AREA` attributes: `ALIGN`, `CODE`, `CODEALIGN`, `DATA`, `NOINIT`, `READONLY`, `READWRITE`, `THUMB`, `ARM`.
23
22
24
-
In the Microsoft ARM assembler,`THUMB`indicates that a `CODE` section contains Thumb code, and is the default for `CODE` sections. `ARM` indicates that the section contains ARM code.
23
+
All except`THUMB`and `ARM` work as documented in the [ARM Compiler armasm Reference Guide](http://infocenter.arm.com/help/topic/com.arm.doc.dui0802b/index.html).
25
24
26
-
`ATTR`<br/>
27
-
Not supported.
25
+
In the Microsoft ARM assembler, `THUMB` indicates that a `CODE` section contains Thumb code, and is the default for `CODE` sections. `ARM` indicates that the section contains ARM code.
28
26
29
-
`CODE16`<br/>
30
-
Not supported because it implies pre-UAL Thumb syntax, which the Microsoft ARM assembler does not allow. Use the `THUMB` directive instead, along with UAL syntax.
27
+
- ATTR
31
28
32
-
`COMMON`<br/>
33
-
Specification of an alignment for the common region is not supported.
29
+
Not supported.
34
30
35
-
`DCDO`<br/>
36
-
Not supported.
31
+
- CODE16
37
32
38
-
`DN`, `QN`, `SN`<br/>
39
-
Specification of a type or a lane on the register alias is not supported.
33
+
Not supported because it implies pre-UAL Thumb syntax, which the Microsoft ARM assembler does not allow. Use the `THUMB` directive instead, along with UAL syntax.
40
34
41
-
`ENTRY`<br/>
42
-
Not supported.
35
+
- COMMON
43
36
44
-
`EQU`<br/>
45
-
Specification of a type for the defined symbol is not supported.
37
+
Specification of an alignment for the common region is not supported.
*sym* is 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.
43
+
-`DN`, `QN`, `SN`
52
44
53
-
`GLOBAL` is a synonym for `EXPORT`.
45
+
Specification of a type or a lane on the register alias is not supported.
54
46
55
-
`EXPORTAS`<br/>
56
-
Not supported.
47
+
- ENTRY
57
48
58
-
`FRAME`<br/>
59
-
Not supported.
49
+
Not supported.
60
50
61
-
`FUNCTION` and `PROC`<br/>
62
-
Although the assembly syntax supports the specification of a custom calling convention on procedures by listing the registers that are caller-save and those that are callee-save, the Microsoft ARM assembler accepts the syntax but ignores the register lists. The debug information that is produced by the assembler supports only the default calling convention.
51
+
- EQU
63
52
64
-
`IMPORT` and `EXTERN`
53
+
Specification of a type for the defined symbol is not supported.
If `WEAK`*alias* is specified, it indicates that *sym* is a weak external. If no definition for it is found at link time, then all references to it bind instead to *alias*.
If `TYPE`*t* is specified, then *t* indicates how the linker should attempt to resolve *sym*. These values for *t* are possible:<br/>
73
-
1—Do not perform a library search for *sym*<br/>
74
-
2—Perform a library search for *sym*<br/>
75
-
3—*sym* is an alias for *alias* (default)
61
+
*sym* is 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. `GLOBAL` is a synonym for `EXPORT`.
76
62
77
-
`EXTERN` is a synonym for `IMPORT`, except that *sym* is imported only if there are references to it in the current assembly.
63
+
- EXPORTAS
78
64
79
-
`MACRO`<br/>
80
-
The use of a variable to hold the condition code of a macro is not supported. Default values for macro parameters are not supported.
65
+
Not supported.
81
66
82
-
`NOFP`<br/>
83
-
Not supported.
67
+
- FRAME
84
68
85
-
`OPT`, `TTL`, `SUBT`<br/>
86
-
Not supported because the Microsoft ARM assembler does not produce listings.
69
+
Not supported.
87
70
88
-
`PRESERVE8`<br/>
89
-
Not supported.
71
+
-`FUNCTION` and `PROC`
90
72
91
-
`RELOC`<br/>
92
-
`RELOC n` can only follow an instruction or a data definition directive. There is no "anonymous symbol" that can be relocated.
73
+
Although the assembly syntax supports the specification of a custom calling convention on procedures by listing the registers that are caller-save and those that are callee-save, the Microsoft ARM assembler accepts the syntax but ignores the register lists. The debug information that is produced by the assembler supports only the default calling convention.
93
74
94
-
`REQUIRE`<br/>
95
-
Not supported.
75
+
-`IMPORT` and `EXTERN`
96
76
97
-
`REQUIRE8`<br/>
98
-
Not supported.
77
+
Specifies imports using this syntax:
99
78
100
-
`THUMBX`<br/>
101
-
Not supported because the Microsoft ARM assembler does not support the Thumb-2EE instruction set.
If `WEAK`*alias* is specified, it indicates that *sym* is a weak external. If no definition for it is found at link time, then all references to it bind instead to *alias*.
84
+
85
+
If `TYPE`*t* is specified, then *t* indicates how the linker should attempt to resolve *sym*. These values for *t* are possible:
86
+
87
+
|Value|Description|
88
+
|-|-|
89
+
|1|Do not perform a library search for *sym*|
90
+
|2|Perform a library search for *sym*|
91
+
|3|*sym* is an alias for *alias* (default)|
92
+
93
+
`EXTERN` is a synonym for `IMPORT`, except that *sym* is imported only if there are references to it in the current assembly.
94
+
95
+
- MACRO
96
+
97
+
The use of a variable to hold the condition code of a macro is not supported. Default values for macro parameters are not supported.
98
+
99
+
- NOFP
100
+
101
+
Not supported.
102
+
103
+
-`OPT`, `TTL`, `SUBT`
104
+
105
+
Not supported because the Microsoft ARM assembler does not produce listings.
106
+
107
+
- PRESERVE8
108
+
109
+
Not supported.
110
+
111
+
- RELOC
112
+
113
+
`RELOC n` can only follow an instruction or a data definition directive. There is no "anonymous symbol" that can be relocated.
114
+
115
+
- REQUIRE
116
+
117
+
Not supported.
118
+
119
+
- REQUIRE8
120
+
121
+
Not supported.
122
+
123
+
- THUMBX
124
+
125
+
Not supported because the Microsoft ARM assembler does not support the Thumb-2EE instruction set.
Provides reference material for the ATL Library, a set of template-based C++ classes that simplify the programming of COM objects.
28
28
29
-
[Microsoft Foundation Class Library (MFC) Reference](../mfc/mfc-desktop-applications.md)
29
+
[Microsoft Foundation Class Library (MFC) Reference](../mfc/mfc-desktop-applications.md)<br/>
30
30
Provides reference material for the MFC Library, a set of classes in that constitute an application framework, which is the framework of an application written for the Windows API.
0 commit comments