Skip to content

Commit 8abe610

Browse files
ghogenColin Robertson
authored and
Colin Robertson
committed
merge to live (#341)
* Add _chkstk to list of internals * Fixes for command line issues * Minor tweak * Update random.md (#322) Fix broken fwlink to presentation on rand * Update link names and instructions * More link fixes, consolidation * Another tweak * Update x64 topics, topic names * Fix C3861 issues. * Fix link issues. * Dang typoes. * Confirm merge from FromPublicMasterBranch to master to sync with https://github.com/MicrosoftDocs/cpp-docs (branch master) (MicrosoftDocs#323) * Update random.md Fix broken fwlink to presentation on rand * Update arm-assembler-reference.md Point to search engine to pick up latest results for ARM references on the ARM Developer Center. * Update some egregious out-of-dateness * Fix a link typo. * Update to address user complaints * Minor tweaks. * Remove stray parens. * updated info on mbcs dll (MicrosoftDocs#325) * Confirm merge from FromPublicMasterBranch to master to sync with https://github.com/MicrosoftDocs/cpp-docs (branch master) (MicrosoftDocs#326) * Update random.md Fix broken fwlink to presentation on rand * Update arm-assembler-reference.md Point to search engine to pick up latest results for ARM references on the ARM Developer Center. * Update desktop-applications-visual-cpp.md Fix space issue * Fix some C1083 user complaints (MicrosoftDocs#332) * First draft of fixes for user complaints * More updates for common issues * More consistency tweaks * Fix link typo * Make C2065 friendlier (#333) * Try to address some user issues. * Add a useful link. * Updated namespaces topic (#329) * updated namespaces topic * udpated ms.date * Updated content on MFC MBCS DLL (MicrosoftDocs#328) * updated info on mbcs dll * minor tweak * udpated ms.date * Update ms.date to match changes. * Update more freshness dates * Escape brackets, fix format * Update .openpublishing.publish.config.json with pdf info (#336) * Update .openpublishing.publish.config.json * Update .openpublishing.publish.config.json * Confirm merge from FromPublicMasterBranch to master to sync with https://github.com/MicrosoftDocs/cpp-docs (branch master) (#335) * Update random.md Fix broken fwlink to presentation on rand * Update arm-assembler-reference.md Point to search engine to pick up latest results for ARM references on the ARM Developer Center. * Update desktop-applications-visual-cpp.md Fix space issue * 📦 Enable PDF generation. * zc-conformance.md: rvalueCast is off by default rvalueCast is off by default according to the https://docs.microsoft.com/en-us/cpp/build/reference/zc-rvaluecast-enforce-type-conversion-rules * Fix bad merge in storage-classes-cpp Had merge conflict markers * Update .openpublishing.publish.config.json * Fix typographical error The fix is for the file docs/windows/desktop-applications-visual-cpp.md and adds the missing word "that" to a sentence. * Correct .ERRDIF[[I]] title * Fixed indentation * Replace nonsense with correct statement Replace nonsense with correct statement * Update read.md Fix some more formatting while we're at it. * Correct build working directory * Order link option alphabetically Orders link option CLRUNMANAGEDCODECHECK alphabetically in the table of contents for consistency. * Updating timestamp Worth getting this right, since otherwise it doesn't look like this page covers 15.3 (and it does!) * Update cl-environment-variables.md Line 65, fixed spelling of "setting". * Update CONTRIBUTING.md * Resolve syncing conflicts from FromPublicMasterBranch to master (#340) * Update random.md Fix broken fwlink to presentation on rand * Update arm-assembler-reference.md Point to search engine to pick up latest results for ARM references on the ARM Developer Center. * Update desktop-applications-visual-cpp.md Fix space issue * 📦 Enable PDF generation. * zc-conformance.md: rvalueCast is off by default rvalueCast is off by default according to the https://docs.microsoft.com/en-us/cpp/build/reference/zc-rvaluecast-enforce-type-conversion-rules * Fix bad merge in storage-classes-cpp Had merge conflict markers * Update .openpublishing.publish.config.json * Fix typographical error The fix is for the file docs/windows/desktop-applications-visual-cpp.md and adds the missing word "that" to a sentence. * Correct .ERRDIF[[I]] title * Fixed indentation * Replace nonsense with correct statement Replace nonsense with correct statement * Update read.md Fix some more formatting while we're at it. * Correct build working directory * Order link option alphabetically Orders link option CLRUNMANAGEDCODECHECK alphabetically in the table of contents for consistency. * Updating timestamp Worth getting this right, since otherwise it doesn't look like this page covers 15.3 (and it does!) * Update cl-environment-variables.md Line 65, fixed spelling of "setting". * Update CONTRIBUTING.md
1 parent 63983da commit 8abe610

File tree

53 files changed

+895
-708
lines changed

Some content is hidden

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

53 files changed

+895
-708
lines changed

.openpublishing.publish.config.json

+56-56
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,56 @@
1-
{
2-
"build_entry_point": "docs",
3-
"need_generate_pdf": false,
4-
"need_generate_intellisense": false,
5-
"branch_target_mapping": {
6-
"live": [
7-
"Publish",
8-
"Pdf"
9-
],
10-
"master": [
11-
"Publish",
12-
"Pdf"
13-
]
14-
},
15-
"Targets": {
16-
"Pdf": {
17-
"template_folder": "_themes.pdf"
18-
}
19-
},
20-
"docsets_to_publish": [
21-
{
22-
"docset_name": "vcppdocs",
23-
"build_source_folder": "docs",
24-
"build_output_subfolder": "vcppdocs",
25-
"locale": "en-us",
26-
"version": 0,
27-
"open_to_public_contributors": true,
28-
"type_mapping": {
29-
"Conceptual": "Content",
30-
"ManagedReference": "Content",
31-
"RestApi": "Content"
32-
},
33-
"template_folder": "_themes"
34-
}
35-
],
36-
"notification_subscribers": [],
37-
"branches_to_filter": [],
38-
"skip_source_output_uploading": false,
39-
"git_repository_url_open_to_public_contributors": "https://github.com/Microsoft/cpp-docs",
40-
"git_repository_branch_open_to_public_contributors": "master",
41-
"dependent_repositories": [
42-
{
43-
"path_to_root": "_themes",
44-
"url": "https://github.com/Microsoft/templates.docs.msft",
45-
"branch": "master",
46-
"branch_mapping": {}
47-
},
48-
{
49-
"path_to_root": "_themes.pdf",
50-
"url": "https://github.com/Microsoft/templates.docs.msft.pdf",
51-
"branch": "master"
52-
}
53-
],
54-
"need_generate_pdf_url_template": true,
55-
"enable_incremental_build": true
56-
}
1+
{
2+
"build_entry_point": "docs",
3+
"need_generate_pdf": false,
4+
"need_generate_intellisense": false,
5+
"branch_target_mapping": {
6+
"live": [
7+
"Publish",
8+
"Pdf"
9+
],
10+
"master": [
11+
"Publish",
12+
"Pdf"
13+
]
14+
},
15+
"Targets": {
16+
"Pdf": {
17+
"template_folder": "_themes.pdf"
18+
}
19+
},
20+
"docsets_to_publish": [
21+
{
22+
"docset_name": "vcppdocs",
23+
"build_source_folder": "docs",
24+
"build_output_subfolder": "vcppdocs",
25+
"locale": "en-us",
26+
"version": 0,
27+
"open_to_public_contributors": true,
28+
"type_mapping": {
29+
"Conceptual": "Content",
30+
"ManagedReference": "Content",
31+
"RestApi": "Content"
32+
},
33+
"template_folder": "_themes"
34+
}
35+
],
36+
"notification_subscribers": [],
37+
"branches_to_filter": [],
38+
"skip_source_output_uploading": false,
39+
"git_repository_url_open_to_public_contributors": "https://github.com/Microsoft/cpp-docs",
40+
"git_repository_branch_open_to_public_contributors": "master",
41+
"dependent_repositories": [
42+
{
43+
"path_to_root": "_themes",
44+
"url": "https://github.com/Microsoft/templates.docs.msft",
45+
"branch": "master",
46+
"branch_mapping": {}
47+
},
48+
{
49+
"path_to_root": "_themes.pdf",
50+
"url": "https://github.com/Microsoft/templates.docs.msft.pdf",
51+
"branch": "master"
52+
}
53+
],
54+
"need_generate_pdf_url_template": true,
55+
"enable_incremental_build": true
56+
}

docs/assembler/arm/arm-assembler-reference.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "ARM Assembler Reference | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "11/04/2016"
4+
ms.date: "08/28/2017"
55
ms.reviewer: ""
66
ms.suite: ""
77
ms.technology:
@@ -31,6 +31,7 @@ translation.priority.ht:
3131
- "zh-tw"
3232
---
3333
# ARM Assembler Reference
34+
3435
The articles in this section of the documentation provide reference material for the Microsoft ARM assembler (armasm) and related tools.
3536

3637
## Related Articles
@@ -44,5 +45,6 @@ The articles in this section of the documentation provide reference material for
4445
|[ARM Compiler armasm User Guide](https://developer.arm.com/search#q=ARM%20Compiler%20armasm%20User%20Guide) on the ARM Developer website.|Choose a recent version to find up-to-date information about the ARM assembly language. **Note:** The "armasm" assembler that is referred to on the ARM Developer website is not the Microsoft armasm assembler that is included in Visual Studio and is documented in this section.|
4546

4647
## See Also
48+
4749
[ARM Intrinsics](../../intrinsics/arm-intrinsics.md)
4850
[Compiler Intrinsics](../../intrinsics/compiler-intrinsics.md)

docs/assembler/masm/masm-for-x64-ml64-exe.md

+37-14
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ ms.topic: "article"
1111
dev_langs:
1212
- "C++"
1313
helpviewer_keywords:
14+
- "ml64"
1415
- "ml64.exe"
15-
- "ml"
16+
- "masm for x64"
1617
ms.assetid: 89059103-f372-4968-80ea-0c7f90bb9c91
1718
caps.latest.revision: 12
1819
author: "corob-msft"
@@ -34,14 +35,34 @@ translation.priority.ht:
3435
- "zh-tw"
3536
---
3637
# MASM for x64 (ml64.exe)
37-
ml64.exe is the assembler that accepts x64 assembly language. For information on ml64.exe compiler options, see [ML and ML64 Command-Line Reference](../../assembler/masm/ml-and-ml64-command-line-reference.md).
38-
39-
Inline ASM is not supported for x64. Use MASM or compiler intrinsics ([x64 (amd64) Intrinsics List](../../intrinsics/x64-amd64-intrinsics-list.md)).
40-
41-
The two workarounds are separate assembly with MASM (which supports x64 fully) and compiler intrinsics. We’ve added a lot of intrinsics to allow customers to make use of special-function instructions (e.g. privileged, bit scan/test, interlocked, etc.) in as close to cross-platform a manner as possible.
38+
39+
Visual Studio includes both 32-bit and 64-bit hosted versions of MASM to target x64 code. Named ml64.exe, this is the assembler that accepts x64 assembler language. The MASM command-line tools are installed when you choose a C++ workload during Visual Studio installation. These tools are not available as a separate download. To download and install a copy of Visual Studio, see [https://www.visualstudio.com/](https://www.visualstudio.com/). If you do not want to install the Visual Studio IDE, but only want the command-line tools, see the **Build Tools for Visual Studio 2017** option on the [Visual Studio Downloads](https://www.visualstudio.com/downloads/) page.
40+
41+
To use MASM to build code for x64 targets on the command line, you must use a developer command prompt for x64 targets, which sets the required path and other environment variables. For information on how to start a developer command prompt, see [Build C/C++ code on the command line](../../build/building-on-the-command-line.md).
42+
43+
For information on ml64.exe command line options, see [ML and ML64 Command-Line Reference](../../assembler/masm/ml-and-ml64-command-line-reference.md).
44+
45+
Inline assembler or use of the ASM keyword is not supported for x64 or ARM targets. To port your x86 code that uses inline assembler to x64 or ARM, you can convert your code to C++, use compiler intrinsics, or create assembler-language source files. The Visual C++ compiler supports intrinsics to allow you to use special-function instructions, for example, privileged, bit scan/test, interlocked, and so on, in as close to a cross-platform manner as possible. For information on available intrinsics, see [Compiler Intrinsics](../../intrinsics/compiler-intrinsics.md).
46+
47+
## Add an assembler-language file to a Visual C++ project
48+
49+
The Visual Studio project system supports assembler-language files built by using MASM in your C++ projects. You can create x64 assembler-language source files and build them into object files by using MASM, which supports x64 fully. You can then link these object files to your C++ code built for x64 targets. This is one way to overcome the lack of an x64 inline assembler.
50+
51+
### To add an assembler-language file to an existing Visual C++ project
52+
53+
1. Select the project in **Solution Explorer**. On the menu bar, choose **Project**, **Build Customizations**.
54+
55+
1. In the **Visual C++ Build Customization Files** dialog box, check the checkbox next to **masm(.targets,.props)**. Choose **OK** to save your selection and close the dialog box.
56+
57+
1. On the menu bar, choose **Project**, **Add New Item**.
58+
59+
1. In the **Add New Item** dialog box, select **C++ file (.cpp)** in the center pane. In the **Name** edit control, enter a new file name that has a **.asm** extension instead of .cpp. Choose **Add** to add the file to your project and close the dialog box.
60+
61+
Create your assembler-language code in the .asm file you added. When you build your solution, the MASM assembler is invoked to assemble the .asm file into an object file that is then linked into your project. To make symbol access easier, declare your assembler functions as `extern "C"` in your C++ source code, rather than using the C++ name decoration conventions in your assembler-language source files.
4262

4363
## ml64-Specific Directives
44-
Use the following directives with ml64.exe:
64+
65+
You can use the following ml64-specific directives in your assembler-language source code that targets x64:
4566

4667
- [.ALLOCSTACK](../../assembler/masm/dot-allocstack.md)
4768

@@ -57,27 +78,29 @@ ml64.exe is the assembler that accepts x64 assembly language. For information on
5778

5879
- [.SETFRAME](../../assembler/masm/dot-setframe.md)
5980

60-
In addition, the [PROC](../../assembler/masm/proc.md) directive was updated for use with ml64.exe.
81+
In addition, the [PROC](../../assembler/masm/proc.md) directive has been updated for use with ml64.exe.
6182

6283
## 32-Bit Address Mode (Address Size Override)
63-
MASM will emit the 0x67 address size override if a memory operand includes 32-bit registers. For example, the following examples cause the address size override to be emitted:
84+
85+
MASM emits the 0x67 address size override if a memory operand includes 32-bit registers. For example, the following examples cause the address size override to be emitted:
6486

65-
```
87+
```MASM
6688
mov rax, QWORD PTR [ecx]
6789
mov eax, DWORD PTR [ecx*2+r10d]
6890
mov eax, DWORD PTR [ecx*2+r10d+0100h]
6991
prefetch [eax]
7092
movnti rax, QWORD PTR [r8d]
7193
```
7294

73-
MASM assumes that if a 32-bit displacement appears alone as a memory operand, 64-bit addressing is intended. There is currently no support for 32-bit addressing with such operands.
95+
MASM assumes that if a 32-bit displacement appears alone as a memory operand, 64-bit addressing is intended. There is currently no support for 32-bit addressing with such operands.
7496

75-
Finally, mixing register sizes within a memory operand, as demonstrated in the following code, will generate an error.
97+
Finally, mixing register sizes within a memory operand, as demonstrated in the following code, generates an error.
7698

77-
```
99+
```MASM
78100
mov eax, DWORD PTR [rcx*2+r10d]
79101
mov eax, DWORD PTR [ecx*2+r10+0100h]
80102
```
81103

82104
## See Also
83-
[Microsoft Macro Assembler Reference](../../assembler/masm/microsoft-macro-assembler-reference.md)
105+
106+
[Microsoft Macro Assembler Reference](../../assembler/masm/microsoft-macro-assembler-reference.md)

docs/assembler/masm/operators-reference.md

+14-12
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Operators Reference | Microsoft Docs"
2+
title: "MASM Operators Reference | Microsoft Docs"
33
ms.custom: ""
44
ms.date: "11/04/2016"
55
ms.reviewer: ""
@@ -33,16 +33,17 @@ translation.priority.ht:
3333
- "zh-cn"
3434
- "zh-tw"
3535
---
36-
# Operators Reference
37-
**Arithmetic**
36+
# MASM Operators Reference
37+
38+
## Arithmetic
3839

3940
||||
4041
|-|-|-|
4142
|[*](../../assembler/masm/operator-multiply.md)|[+](../../assembler/masm/operator-add.md)|[-](../../assembler/masm/operator-subtract-2.md)|
4243
|[.](../../assembler/masm/operator-dot.md)|[/](../../assembler/masm/operator-subtract-1.md)|[[]](../../assembler/masm/operator-brackets.md)|
4344
|[MOD](../../assembler/masm/operator-mod.md)|||
4445

45-
### Control Flow
46+
## Control Flow
4647

4748
||||
4849
|-|-|-|
@@ -51,21 +52,21 @@ translation.priority.ht:
5152
|[==](../../assembler/masm/operator-equal-masm-run-time.md)|[>](../../assembler/masm/operator-greater-than-masm-run-time.md)|[>=](../../assembler/masm/operator-greater-or-equal-masm-run-time.md)|
5253
|[||](../../assembler/masm/operator-logical-or.md)|||
5354

54-
### Logical and Shift
55+
## Logical and Shift
5556

5657
||||
5758
|-|-|-|
5859
|[AND](../../assembler/masm/operator-and.md)|[NOT](../../assembler/masm/operator-not.md)|[OR](../../assembler/masm/operator-or.md)|
5960
|[SHL](../../assembler/masm/operator-shl.md)|[SHR](../../assembler/masm/operator-shr.md)|[XOR](../../assembler/masm/operator-xor.md)|
6061

61-
### Macro
62+
## Macro
6263

6364
||||
6465
|-|-|-|
6566
|[!](../../assembler/masm/operator-logical-not-masm-run-time.md)|[%](../../assembler/masm/operator-percent.md)|[&](../../assembler/masm/operator-bitwise-and.md)|
6667
|[;;](../../assembler/masm/operator-semicolons.md)|[<>](../../assembler/masm/operator-literal.md)||
6768

68-
### Miscellaneous
69+
## Miscellaneous
6970

7071
||||
7172
|-|-|-|
@@ -74,28 +75,28 @@ translation.priority.ht:
7475
|[DUP](../../assembler/masm/operator-dup.md)|[OVERFLOW?](../../assembler/masm/operator-overflow-q.md)|[PARITY?](../../assembler/masm/operator-parity-q.md)|
7576
|[SIGN?](../../assembler/masm/operator-sign-q.md)|[ZERO?](../../assembler/masm/operator-zero-q.md)||
7677

77-
### Record
78+
## Record
7879

7980
|||
8081
|-|-|
8182
|[MASK](../../assembler/masm/operator-mask.md)|[WIDTH](../../assembler/masm/operator-width.md)|
8283

83-
### Relational
84+
## Relational
8485

8586
||||
8687
|-|-|-|
8788
|[EQ](../../assembler/masm/operator-eq.md)|[GE](../../assembler/masm/operator-ge.md)|[GT](../../assembler/masm/operator-gt.md)|
8889
|[LE](../../assembler/masm/operator-le.md)|[LT](../../assembler/masm/operator-lt.md)|[NE](../../assembler/masm/operator-ne.md)|
8990

90-
### Segment
91+
## Segment
9192

9293
|||
9394
|-|-|
9495
|[:](../../assembler/masm/operator-colon.md)|[IMAGEREL](../../assembler/masm/operator-imagerel.md)|
9596
|[LROFFSET](../../assembler/masm/operator-lroffset.md)|[OFFSET](../../assembler/masm/operator-offset.md)|
9697
|[SECTIONREL](../../assembler/masm/operator-sectionrel.md)|[SEG](../../assembler/masm/operator-seg.md)|
9798

98-
### Type
99+
## Type
99100

100101
||||
101102
|-|-|-|
@@ -106,4 +107,5 @@ translation.priority.ht:
106107
|[SIZEOF](../../assembler/masm/operator-sizeof.md)|[THIS](../../assembler/masm/operator-this.md)|[TYPE](../../assembler/masm/operator-type.md)|
107108

108109
## See Also
109-
[Microsoft Macro Assembler Reference](../../assembler/masm/microsoft-macro-assembler-reference.md)
110+
111+
[Microsoft Macro Assembler Reference](../../assembler/masm/microsoft-macro-assembler-reference.md)

docs/build/TOC.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
### [Manifest Generation at the Command Line](manifest-generation-at-the-command-line.md)
1111
### [How to: Embed a Manifest Inside a C/C++ Application](how-to-embed-a-manifest-inside-a-c-cpp-application.md)
1212
## [Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies](troubleshooting-c-cpp-isolated-applications-and-side-by-side-assemblies.md)
13-
# [Configuring Programs for 64-Bit (Visual C++)](configuring-programs-for-64-bit-visual-cpp.md)
14-
## [How to: Configure Visual C++ Projects to Target 64-Bit Platforms](how-to-configure-visual-cpp-projects-to-target-64-bit-platforms.md)
13+
# [Configure Visual C++ for 64-bit, x64 targets](configuring-programs-for-64-bit-visual-cpp.md)
14+
## [How to: Configure Visual C++ Projects to Target 64-Bit, x64 Platforms](how-to-configure-visual-cpp-projects-to-target-64-bit-platforms.md)
1515
## [How to: Enable a 64-Bit Visual C++ Toolset on the Command Line](how-to-enable-a-64-bit-visual-cpp-toolset-on-the-command-line.md)
1616
## [Common Visual C++ 64-bit Migration Issues](common-visual-cpp-64-bit-migration-issues.md)
1717
## [x64 Software Conventions](x64-software-conventions.md)
@@ -55,7 +55,7 @@
5555
#### [Unwind Data Definitions in C](unwind-data-definitions-in-c.md)
5656
### [Intrinsics and Inline Assembly](intrinsics-and-inline-assembly.md)
5757
### [Image Format](image-format.md)
58-
# [Configuring Programs for ARM Processors (Visual C++)](configuring-programs-for-arm-processors-visual-cpp.md)
58+
# [Configure Visual C++ for ARM processors](configuring-programs-for-arm-processors-visual-cpp.md)
5959
## [Common Visual C++ ARM Migration Issues](common-visual-cpp-arm-migration-issues.md)
6060
## [Overview of ARM ABI Conventions](overview-of-arm-abi-conventions.md)
6161
## [ARM Exception Handling](arm-exception-handling.md)
@@ -99,12 +99,12 @@
9999
## [Naming Conventions for MFC DLLs](naming-conventions-for-mfc-dlls.md)
100100
## [Calling DLL Functions from Visual Basic Applications](calling-dll-functions-from-visual-basic-applications.md)
101101
# [Compiler Intrinsics and Assembly Language](../intrinsics/TOC.md)
102-
# [Building on the Command Line](building-on-the-command-line.md)
102+
# [Build C/C++ code on the command line](building-on-the-command-line.md)
103103
## [Walkthrough: Compiling a Native C++ Program on the Command Line](walkthrough-compiling-a-native-cpp-program-on-the-command-line.md)
104104
## [Walkthrough: Compile a C program on the command line](walkthrough-compile-a-c-program-on-the-command-line.md)
105105
## [Walkthrough: Compiling a C++/CLI Program on the Command Line](walkthrough-compiling-a-cpp-cli-program-on-the-command-line.md)
106106
## [Walkthrough: Compiling a C++/CX Program on the Command Line](walkthrough-compiling-a-cpp-cx-program-on-the-command-line.md)
107-
## [Setting the Path and Environment Variables for Command-Line Builds](setting-the-path-and-environment-variables-for-command-line-builds.md)
107+
## [Set the Path and Environment Variables for Command-Line Builds](setting-the-path-and-environment-variables-for-command-line-builds.md)
108108
## [NMAKE Reference](nmake-reference.md)
109109
### [Running NMAKE](running-nmake.md)
110110
#### [NMAKE Options](nmake-options.md)

0 commit comments

Comments
 (0)