Skip to content

Commit 18ede96

Browse files
committed
Migration: migration from Caps to OP
1 parent d7a2122 commit 18ede96

File tree

26,582 files changed

+2739784
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

26,582 files changed

+2739784
-0
lines changed

docs/vs-2015/TOC.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# [arm](assembler\arm\TOC.md)
2+
# [inline](assembler\inline\TOC.md)
3+
# [masm](assembler\masm\TOC.md)
4+
# [atl](atl\TOC.md)
5+
# [atl-mfc-shared](atl-mfc-shared\TOC.md)
6+
# [reference](atl-mfc-shared\reference\TOC.md)
7+
# [reference](atl\reference\TOC.md)
8+
# [build](build\TOC.md)
9+
# [reference](build\reference\TOC.md)
10+
# [c-language](c-language\TOC.md)
11+
# [c-runtime-library](c-runtime-library\TOC.md)
12+
# [reference](c-runtime-library\reference\TOC.md)
13+
# [cpp](cpp\TOC.md)
14+
# [data](data\TOC.md)
15+
# [ado-rdo](data\ado-rdo\TOC.md)
16+
# [odbc](data\odbc\TOC.md)
17+
# [oledb](data\oledb\TOC.md)
18+
# [dotnet](dotnet\TOC.md)
19+
# [compiler-errors-1](error-messages\compiler-errors-1\TOC.md)
20+
# [compiler-errors-2](error-messages\compiler-errors-2\TOC.md)
21+
# [compiler-warnings](error-messages\compiler-warnings\TOC.md)
22+
# [tool-errors](error-messages\tool-errors\TOC.md)
23+
# [ide](ide\TOC.md)
24+
# [intrinsics](intrinsics\TOC.md)
25+
# [mfc](mfc\TOC.md)
26+
# [reference](mfc\reference\TOC.md)
27+
# [misc](misc\TOC.md)
28+
# [parallel](parallel\TOC.md)
29+
# [amp](parallel\amp\TOC.md)
30+
# [reference](parallel\amp\reference\TOC.md)
31+
# [concrt](parallel\concrt\TOC.md)
32+
# [reference](parallel\concrt\reference\TOC.md)
33+
# [multithreading](parallel\multithreading\TOC.md)
34+
# [openmp](parallel\openmp\TOC.md)
35+
# [reference](parallel\openmp\reference\TOC.md)
36+
# [porting](porting\TOC.md)
37+
# [preprocessor](preprocessor\TOC.md)
38+
# [standard-library](standard-library\TOC.md)
39+
# [text](text\TOC.md)
40+
# [top](top\TOC.md)
41+
# [windows](windows\TOC.md)

docs/vs-2015/assembler/arm/TOC.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# [ARM Assembler Reference](arm-assembler-reference.md)
2+
# [ARM Assembler Command-Line Reference](arm-assembler-command-line-reference.md)
3+
# [ARM Assembler Directives](arm-assembler-directives.md)
4+
# [ARM Assembler Diagnostic Messages](arm-assembler-diagnostic-messages.md)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
title: "ARM Assembler Command-Line Reference | Microsoft Docs"
3+
ms.custom: ""
4+
ms.date: "2018-06-30"
5+
ms.prod: "visual-studio-dev14"
6+
ms.reviewer: ""
7+
ms.suite: ""
8+
ms.technology:
9+
- "devlang-cpp"
10+
ms.tgt_pltfrm: ""
11+
ms.topic: "article"
12+
dev_langs:
13+
- "C++"
14+
ms.assetid: f7b89478-1ab5-4995-8cde-a805f0462c45
15+
caps.latest.revision: 14
16+
author: "corob-msft"
17+
ms.author: "corob"
18+
manager: "ghogen"
19+
---
20+
# ARM Assembler Command-Line Reference
21+
[!INCLUDE[blank_token](../../includes/blank-token.md)]
22+
23+
The latest version of this topic can be found at [ARM Assembler Command-Line Reference](https://docs.microsoft.com/cpp/assembler/arm/arm-assembler-command-line-reference).
24+
25+
26+
This article provides command-line information about the Microsoft ARM assembler, *armasm*, which compiles ARMv7 Thumb assembly language into the Microsoft implementation of the Common Object File Format (COFF). The linker can link COFF code with object code that is produced by the ARM assembler or by the C compiler, together with object libraries that are created by the librarian.
27+
28+
## Syntax
29+
30+
```
31+
armasm [[options]] sourcefile objectfile
32+
```
33+
34+
```
35+
armasm [[options]] -o objectfile sourcefile
36+
```
37+
38+
#### Parameters
39+
`options`
40+
-errors `filename`
41+
Redirect error and warning messages to `filename`.
42+
43+
-i `dir[;dir]`
44+
Add the specified directories to the include search path.
45+
46+
-predefine `directive`
47+
Specify a SETA, SETL, or SETS directive to predefine a symbol. Example: **armasm.exe -predefine "COUNT SETA 150" source.asm**. For more information, see the [ARM assembler tools guide](http://go.microsoft.com/fwlink/?LinkId=246102).
48+
49+
-nowarn
50+
Disable all warning messages.
51+
52+
-ignore `warning`
53+
Disable the specified warning. For possible values, see the section about warnings.
54+
55+
-help
56+
Print the command-line help message.
57+
58+
-machine `machine`
59+
Specify the machine type to set in the PE header. Possible values for `machine` are:
60+
**ARM**—Sets the machine type to IMAGE_FILE_MACHINE_ARMNT. This is the default.
61+
**THUMB**—Sets the machine type to IMAGE_FILE_MACHINE_THUMB.
62+
63+
-oldit
64+
Generate ARMv7-style IT blocks. By default, ARMv8-compatible IT blocks are generated.
65+
66+
-via `filename`
67+
Read additional command-line arguments from `filename`.
68+
69+
-16
70+
Assemble source as 16-bit Thumb instructions. This is the default.
71+
72+
-32
73+
Assemble source as 32-bit ARM instructions.
74+
75+
-g
76+
Generate debugging information.
77+
78+
-errorReport: `option`
79+
Specify how internal assembler errors are reported to Microsoft. Possible values for `option` are:
80+
**none**—Do not send reports.
81+
**prompt**—Prompt the user to send reports immediately.
82+
**queue**—Prompt the user to send reports at the next admin logon. This is the default.
83+
**send**—Send reports automatically.
84+
85+
`sourcefile`
86+
The name of the source file.
87+
88+
`objectfile`
89+
The name of the object (output) file.
90+
91+
The following example demonstrates how to use armasm in a typical scenario. First, use armasm to build an assembly language source (.asm) file to an object (.obj) file. Then, use the CL command-line C compiler to compile a source (.c) file, and also specify the linker option to link the ARM object file.
92+
93+
**armasm myasmcode.asm -o myasmcode.obj**
94+
95+
**cl myccode.c /link myasmcode.obj**
96+
97+
## See Also
98+
[ARM Assembler Diagnostic Messages](../../assembler/arm/arm-assembler-diagnostic-messages.md)
99+
[ARM Assembler Directives](../../assembler/arm/arm-assembler-directives.md)
100+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
---
2+
title: "ARM Assembler Diagnostic Messages | Microsoft Docs"
3+
ms.custom: ""
4+
ms.date: "2018-06-30"
5+
ms.prod: "visual-studio-dev14"
6+
ms.reviewer: ""
7+
ms.suite: ""
8+
ms.technology:
9+
- "devlang-cpp"
10+
ms.tgt_pltfrm: ""
11+
ms.topic: "article"
12+
dev_langs:
13+
- "C++"
14+
ms.assetid: 52b38267-6023-4bdc-a0ef-863362f48eec
15+
caps.latest.revision: 8
16+
author: "corob-msft"
17+
ms.author: "corob"
18+
manager: "ghogen"
19+
---
20+
# ARM Assembler Diagnostic Messages
21+
[!INCLUDE[blank_token](../../includes/blank-token.md)]
22+
23+
The latest version of this topic can be found at [ARM Assembler Diagnostic Messages](https://docs.microsoft.com/cpp/assembler/arm/arm-assembler-diagnostic-messages).
24+
25+
26+
The Microsoft ARM assembler (*armasm*) emits diagnostic warnings and errors when it encounters them. This article describes the most commonly-encountered messages.
27+
28+
## Syntax
29+
30+
```
31+
32+
filename(lineno) : [error|warning] Anum: message
33+
```
34+
35+
## Diagnostic Messages
36+
37+
### Errors
38+
A2193: this instruction generates unpredictable behavior
39+
The ARM architecture cannot guarantee what happens when this instruction is executed. For details about the well-defined forms of this instruction, consult the [ARM Architecture Reference Manual](http://go.microsoft.com/fwlink/?LinkId=246464).
40+
41+
```
42+
43+
ADD r0, r8, pc ; A2193: this instruction generates unpredictable behavior
44+
45+
```
46+
47+
A2196: instruction cannot be encoded in 16 bits
48+
The specified instruction cannot be encoded as a 16-bit Thumb instruction. Specify a 32-bit instruction, or rearrange code to bring the target label into the range of a 16-bit instruction.
49+
50+
The assembler may attempt to encode a branch in 16 bits and fail with this error, even though a 32-bit branch is encodable. You can solve this problem by using the `.W` specifier to explicitly mark the branch as 32-bit.
51+
52+
```
53+
54+
ADD.N r0, r1, r2 ; A2196: instruction cannot be encoded in 16 bits
55+
56+
B.W label ; OK
57+
B.N label ; A2196: instruction cannot be encoded in 16 bits
58+
SPACE 10000
59+
label
60+
61+
```
62+
63+
A2202: Pre-UAL instruction syntax not allowed in THUMB region
64+
Thumb code must use the Unified Assembler Language (UAL) syntax. The old syntax is no longer accepted
65+
66+
```
67+
68+
ADDEQS r0, r1 ; A2202: Pre-UAL instruction syntax not allowed in THUMB region
69+
ADDSEQ r0, r1 ; OK
70+
71+
```
72+
73+
A2513: Rotation must be even
74+
In ARM mode, there is an alternate syntax for specifying constants. Instead of writing `#<const>`, you can write `#<byte>,#<rot>`, which represents the constant value that is obtained by rotating the value `<byte>` right by `<rot>`. When you use this syntax, you must make the value of `<rot>` even.
75+
76+
```
77+
78+
MOV r0, #4, #2 ; OK
79+
MOV r0, #4, #1 ; A2513: Rotation must be even
80+
81+
```
82+
83+
A2557: Incorrect number of bytes to write back
84+
On the NEON structure load and store instructions (`VLDn`, `VSTn`), there is an alternate syntax for specifying writeback to the base register. Instead of putting an exclamation point (!) after the address, you can specify an immediate value that indicates the offset to be added to the base register. If you use this syntax, you must specify the exact number of bytes that were loaded or stored by the instruction.
85+
86+
```
87+
88+
VLD1.8 {d0-d3}, [r0]! ; OK
89+
VLD1.8 {d0-d3}, [r0], #32 ; OK
90+
VLD1.8 {d0-d3}, [r0], #100 ; A2557: Incorrect number of bytes to write back
91+
92+
```
93+
94+
### Warnings
95+
A4228: Alignment value exceeds AREA alignment; alignment not guaranteed
96+
The alignment that is specified in an `ALIGN` directive is greater than the alignment of the enclosing `AREA`. As a result, the assembler cannot guarantee that the `ALIGN` directive will be honored.
97+
98+
To fix this, you can specify on the `AREA` directive an `ALIGN` attribute that is equal to or greater than the desired alignment.
99+
100+
```
101+
102+
AREA |.myarea1|
103+
ALIGN 8 ; A4228: Alignment value exceeds AREA alignment; alignment not guaranteed
104+
105+
AREA |.myarea2|,ALIGN=3
106+
ALIGN 8 ; OK
107+
108+
```
109+
110+
A4508: Use of this rotated constant is deprecated
111+
In ARM mode, there is an alternate syntax for specifying constants. Instead of writing `#<const>`, you can write `#<byte>,#<rot>`, which represents the constant value that is obtained by rotating the value `<byte>` right by `<rot>`. In some contexts, ARM has deprecated the use of these rotated constants. In these cases, use the basic `#<const>` syntax instead.
112+
113+
```
114+
115+
ANDS r0, r0, #1 ; OK
116+
ANDS r0, r0, #4, #2 ; A4508: Use of this rotated constant is deprecated
117+
118+
```
119+
120+
A4509: This form of conditional instruction is deprecated
121+
This form of conditional instruction has been deprecated by ARM in the ARMv8 architecture. We recommend that you change the code to use conditional branches. To see which conditional instructions are still supported, consult the [ARM Architecture Reference Manual](http://go.microsoft.com/fwlink/?LinkId=246464).
122+
123+
This warning is not emitted when the `-oldit` command-line switch is used.
124+
125+
```
126+
127+
ADDEQ r0, r1, r8 ; A4509: This form of conditional instruction is deprecated
128+
129+
```
130+
131+
## See Also
132+
[ARM Assembler Command-Line Reference](../../assembler/arm/arm-assembler-command-line-reference.md)
133+
[ARM Assembler Directives](../../assembler/arm/arm-assembler-directives.md)
134+

0 commit comments

Comments
 (0)