Skip to content

Fix git push error for protected CLA branch #2316

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jul 17, 2020
397 changes: 252 additions & 145 deletions docs/assembler/masm/directives-reference.md

Large diffs are not rendered by default.

145 changes: 97 additions & 48 deletions docs/assembler/masm/operators-reference.md
Original file line number Diff line number Diff line change
@@ -1,84 +1,133 @@
---
title: "MASM Operators reference"
ms.date: "12/17/2019"
ms.date: 07/15/2020
helpviewer_keywords: ["MASM (Microsoft Macro Assembler), operators reference", "operators [MASM]"]
ms.assetid: c069cab7-d6b0-4f82-a6ce-0ca3fc7e6428
---
# MASM Operators reference

## Arithmetic

||||
|-|-|-|
|[* (multiply)](operator-multiply.md)|[+ (add)](operator-add.md)|[- (subtract or negate)](operator-subtract-2.md)|
|[. (field)](operator-dot.md)|[/ (divide)](operator-subtract-1.md)|[[] (index)](operator-brackets.md)|
|[MOD (remainder)](operator-mod.md)|||
:::row:::
:::column span="":::
[`*` (multiply)](operator-multiply.md)<br/>[`+` (add)](operator-add.md)<br/>[`-` (subtract or negate)](operator-subtract-2.md)
:::column-end:::
:::column span="":::
[`.` (field)](operator-dot.md)<br/>[`/` (divide)](operator-subtract-1.md)
:::column-end:::
:::column span="":::
[`[]` (index)](operator-brackets.md)<br/>[`MOD` (remainder)](operator-mod.md)
:::column-end:::
:::row-end:::

## Control Flow

||||
|-|-|-|
|[\! (runtime logical not)](operator-logical-not-masm-run-time.md)|[\!= (runtime not equal)](operator-not-equal-masm.md)|[&#124;&#124; (runtime logical or)](operator-logical-or.md)|
|[&& (runtime logical and)](operator-logical-and-masm-run-time.md)|[< (runtime less than)](operator-less-than-masm-run-time.md)|[\<= (runtime less or equal)](operator-less-or-equal-masm-run-time.md)|
|[== (runtime equal)](operator-equal-masm-run-time.md)|[> (runtime greater than)](operator-greater-than-masm-run-time.md)|[>= (runtime greater or equal)](operator-greater-or-equal-masm-run-time.md)|
|[& (runtime bitwise and)](operator-bitwise-and.md)|||
|[CARRY? (runtime carry test)](operator-carry-q.md)|[OVERFLOW? (runtime overflow test)](operator-overflow-q.md)|[PARITY? (runtime parity test)](operator-parity-q.md)|
|[SIGN? (runtime sign test)](operator-sign-q.md)|[ZERO? (runtime zero test)](operator-zero-q.md)||
:::row:::
:::column span="":::
[`!` (runtime logical not)](operator-logical-not-masm-run-time.md)<br/>[`!=` (runtime not equal)](operator-not-equal-masm.md)<br/>[`||` (runtime logical or)](operator-logical-or.md)<br/>[`&&` (runtime logical and)](operator-logical-and-masm-run-time.md)<br/>[`<` (runtime less than)](operator-less-than-masm-run-time.md)
:::column-end:::
:::column span="":::
[`<=` (runtime less or equal)](operator-less-or-equal-masm-run-time.md)<br/>[`==` (runtime equal)](operator-equal-masm-run-time.md)<br/>[`>` (runtime greater than)](operator-greater-than-masm-run-time.md)<br/>[`>=` (runtime greater or equal)](operator-greater-or-equal-masm-run-time.md)<br/>[`&` (runtime bitwise and)](operator-bitwise-and.md)
:::column-end:::
:::column span="":::
[`CARRY?` (runtime carry test)](operator-carry-q.md)<br/>[`OVERFLOW?` (runtime overflow test)](operator-overflow-q.md)<br/>[`PARITY?` (runtime parity test)](operator-parity-q.md)<br/>[`SIGN?` (runtime sign test)](operator-sign-q.md)<br/>[`ZERO?` (runtime zero test)](operator-zero-q.md)
:::column-end:::
:::row-end:::

## Logical and Shift

||||
|-|-|-|
|[AND (bitwise and)](operator-and.md)|[NOT (bitwise not)](operator-not.md)|[OR (bitwise or)](operator-or.md)|
|[SHL (shift bits left)](operator-shl.md)|[SHR (shift bits right)](operator-shr.md)|[XOR (bitwise exclusive or)](operator-xor.md)|
:::row:::
:::column span="":::
[`AND` (bitwise and)](operator-and.md)<br/>[`NOT` (bitwise not)](operator-not.md)
:::column-end:::
:::column span="":::
[`OR` (bitwise or)](operator-or.md)<br/>[`SHL` (shift bits left)](operator-shl.md)
:::column-end:::
:::column span="":::
[`SHR` (shift bits right)](operator-shr.md)<br/>[`XOR` (bitwise exclusive or)](operator-xor.md)
:::column-end:::
:::row-end:::

## Macro

||||
|-|-|-|
|[\! (character literal)](operator-logical-not-masm.md)|[% (treat as text)](operator-percent.md)||
|[;; (treat as comment)](operator-semicolons.md)|[&lt; &gt; (treat as one literal)](operator-literal.md)|[& & (substitute parameter value)](operator-logical-and-masm.md)|
:::row:::
:::column span="":::
[`!` (character literal)](operator-logical-not-masm.md)<br/>[`%` (treat as text)](operator-percent.md)
:::column-end:::
:::column span="":::
[`;;` (treat as comment)](operator-semicolons.md)<br/>[`< >` (treat as one literal)](operator-literal.md)
:::column-end:::
:::column span="":::
[`& &` (substitute parameter value)](operator-logical-and-masm.md)
:::column-end:::
:::row-end:::

## Miscellaneous

||||
|-|-|-|
|[' ' (treat as string)](operator-single-quote.md)|[" " (treat as string)](operator-double-quote.md)||
|: (local label definition)|:: (register segment and offset)|:: (global label definition)|
|[; (treat as comment)](operator-semicolon.md)|[DUP (repeat declaration)](operator-dup.md)||
:::row:::
:::column span="":::
[`' '` (treat as string)](operator-single-quote.md)<br/>[`" "` (treat as string)](operator-double-quote.md)<br/>`:` (local label definition)
:::column-end:::
:::column span="":::
`::` (register segment and offset)<br/>`::` (global label definition)
:::column-end:::
:::column span="":::
[`;` (treat as comment)](operator-semicolon.md)<br/>[`DUP` (repeat declaration)](operator-dup.md)
:::column-end:::
:::row-end:::

## Record

|||
|-|-|
|[MASK (get record or field bitmask)](operator-mask.md)|[WIDTH (get record or field width)](operator-width.md)|
:::row:::
:::column span="":::
[`MASK` (get record or field bitmask)](operator-mask.md)
:::column-end:::
:::column span="2":::
[`WIDTH` (get record or field width)](operator-width.md)
:::column-end:::
:::row-end:::

## Relational

||||
|-|-|-|
|[EQ (equal)](operator-eq.md)|[GE (greater or equal)](operator-ge.md)|[GT (greater than)](operator-gt.md)|
|[LE (less or equal)](operator-le.md)|[LT (less than)](operator-lt.md)|[NE (not equal)](operator-ne.md)|
:::row:::
:::column span="":::
[`EQ` (equal)](operator-eq.md)<br/>[`GE` (greater or equal)](operator-ge.md)
:::column-end:::
:::column span="":::
[`GT` (greater than)](operator-gt.md)<br/>[`LE` (less or equal)](operator-le.md)
:::column-end:::
:::column span="":::
[`LT` (less than)](operator-lt.md)<br/>[`NE` (not equal)](operator-ne.md)
:::column-end:::
:::row-end:::

## Segment

|||
|-|-|
|[: (segment override)](operator-colon.md)|:: (register segment and offset)|
|[IMAGEREL (image relative offset)](operator-imagerel.md)|[LROFFSET (loader resolved offset)](operator-lroffset.md)|
|[OFFSET (segment relative offset)](operator-offset.md)|[SECTIONREL (section relative offset)](operator-sectionrel.md)|
|[SEG (get segment)](operator-seg.md)||
:::row:::
:::column span="":::
[`:` (segment override)](operator-colon.md)<br/>`::` (register segment and offset)<br/>[`IMAGEREL` (image relative offset)](operator-imagerel.md)
:::column-end:::
:::column span="":::
[`LROFFSET` (loader resolved offset)](operator-lroffset.md)<br/>[`OFFSET` (segment relative offset)](operator-offset.md)
:::column-end:::
:::column span="":::
[`SECTIONREL` (section relative offset)](operator-sectionrel.md)<br/>[`SEG` (get segment)](operator-seg.md)
:::column-end:::
:::row-end:::

## Type

||||
|-|-|-|
|[HIGH (high 8 bits of lowest 16 bits)](operator-high.md)|[HIGH32 (high 32 bits of 64 bits)](operator-high32.md)|[HIGHWORD (high 16 bits of lowest 32 bits)](operator-highword.md)|
|[LENGTH (number of elements in array)](operator-length.md)|[LENGTHOF (number of elements in array)](operator-lengthof.md)|[LOW (low 8 bits)](operator-low.md)|
|[LOW32 (low 32 bits)](operator-low32.md)|[LOWWORD (low 16 bits)](operator-lowword.md)|[OPATTR (get argument type info)](operator-opattr.md)|
|[PTR (pointer to or as type)](operator-ptr.md)|[SHORT (mark short label type)](operator-short.md)|[SIZE (size of type or variable)](operator-size.md)|
|[SIZEOF (size of type or variable)](operator-sizeof.md)|[THIS (current location)](operator-this.md)|[TYPE (get expression type)](operator-type.md)|
|[.TYPE (get argument type info)](operator-dot-type.md)|||
:::row:::
:::column span="":::
[`HIGH` (high 8 bits of lowest 16 bits)](operator-high.md)<br/>[`HIGH32` (high 32 bits of 64 bits)](operator-high32.md)<br/>[`HIGHWORD` (high 16 bits of lowest 32 bits)](operator-highword.md)<br/>[`LENGTH` (number of elements in array)](operator-length.md)<br/>[`LENGTHOF` (number of elements in array)](operator-lengthof.md)<br/>[`LOW` (low 8 bits)](operator-low.md)
:::column-end:::
:::column span="":::
[`LOW32` (low 32 bits)](operator-low32.md)<br/>[`LOWWORD` (low 16 bits)](operator-lowword.md)<br/>[`OPATTR` (get argument type info)](operator-opattr.md)<br/>[`PTR` (pointer to or as type)](operator-ptr.md)<br/>[`SHORT` (mark short label type)](operator-short.md)
:::column-end:::
:::column span="":::
[`SIZE` (size of type or variable)](operator-size.md)<br/>[`SIZEOF` (size of type or variable)](operator-sizeof.md)<br/>[`THIS` (current location)](operator-this.md)<br/>[`TYPE` (get expression type)](operator-type.md)<br/>[`.TYPE` (get argument type info)](operator-dot-type.md)
:::column-end:::
:::row-end:::

## See also

Expand Down
31 changes: 18 additions & 13 deletions docs/assembler/masm/option-masm.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "OPTION (MASM)"
ms.date: "12/17/2019"
ms.date: 07/15/2020
f1_keywords: ["option"]
helpviewer_keywords: ["OPTION directive"]
ms.assetid: 8e10dabd-e36f-4586-ab01-ada96736b0bd
Expand All @@ -11,23 +11,28 @@ Enables and disables features of the assembler.

## Syntax

> **OPTION** *optionlist*
> **`OPTION`** *option-list*

## Remarks

Available options include:

|||||
|-|-|-|-|
|**CASEMAP**|**DOTNAME**|**NODOTNAME**|**EMULATOR**|
|**NOEMULATOR**|**EPILOGUE**|**EXPR16**|**EXPR32**|
|**LANGUAGE**|**LJMP**|**NOLJMP**|**M510**|
|**NOM510**|**NOKEYWORD**|**NOSIGNEXTEND**|**OFFSET**|
|**OLDMACROS**|**NOOLDMACROS**|**OLDSTRUCTS**|**NOOLDSTRUCTS**|
|**PROC**|**PROLOGUE**|**READONLY**|**NOREADONLY**|
|**SCOPED**|**NOSCOPED**|**SEGMENT**|**SETIF2**.|

The syntax for LANGUAGE is **OPTION LANGUAGE:**<em>x</em>, where *x* is one of C, SYSCALL, STDCALL, PASCAL, FORTRAN, or BASIC. SYSCALL, PASCAL, FORTRAN, and BASIC are not supported with [.MODEL](dot-model.md) FLAT.
:::row:::
:::column span="":::
**`CASEMAP`**<br/>**`DOTNAME`**<br/>**`NODOTNAME`**<br/>**`EMULATOR`**<br/>**`NOEMULATOR`**<br/>**`EPILOGUE`**<br/>**`EXPR16`**
:::column-end:::
:::column span="":::
**`EXPR32`**<br/>**`LANGUAGE`**<br/>**`LJMP`**<br/>**`NOLJMP`**<br/>**`M510`**<br/>**`NOM510`**<br/>**`NOKEYWORD`**
:::column-end:::
:::column span="":::
**`NOSIGNEXTEND`**<br/>**`OFFSET`**<br/>**`OLDMACROS`**<br/>**`NOOLDMACROS`**<br/>**`OLDSTRUCTS`**<br/>**`NOOLDSTRUCTS`**<br/>**`PROC`**
:::column-end:::
:::column span="":::
**`PROLOGUE`**<br/>**`READONLY`**<br/>**`NOREADONLY`**<br/>**`SCOPED`**<br/>**`NOSCOPED`**<br/>**`SEGMENT`**<br/>**`SETIF2`**
:::column-end:::
:::row-end:::

The syntax for LANGUAGE is **`OPTION LANGUAGE:`** _`x`_, where *`x`* is one of **`C`**, **`SYSCALL`**, **`STDCALL`**, **`PASCAL`**, **`FORTRAN`**, or **`BASIC`**. **`SYSCALL`**, **`PASCAL`**, **`FORTRAN`**, and **`BASIC`** are not supported with [`.MODEL`](dot-model.md) **`FLAT`**.

## See also

Expand Down
102 changes: 76 additions & 26 deletions docs/assembler/masm/symbols-reference.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,103 @@
---
title: "Symbols reference"
ms.date: "11/06/2018"
ms.date: 07/15/2020
helpviewer_keywords: ["MASM (Microsoft Macro Assembler), symbols reference"]
ms.assetid: 96ed59cc-dafa-4299-bb2e-9c7c3f496491
---
# Symbols reference

## Date and time information

|||
|-|-|
|[\@Date](at-date.md)|[\@Time](at-time.md)|
:::row:::
:::column span="":::
[`@Date`](at-date.md)
:::column-end:::
:::column span="3":::
[`@Time`](at-time.md)
:::column-end:::
:::row-end:::

## Environment information

|||
|-|-|
|[\@Cpu](at-cpu.md)|[\@Environ](at-environ.md)|
|[\@Interface](at-interface.md)|[\@Version](at-version.md)|
:::row:::
:::column span="":::
[`@Cpu`](at-cpu.md)
:::column-end:::
:::column span="":::
[`@Environ`](at-environ.md)
:::column-end:::
:::column span="":::
[`@Interface`](at-interface.md)
:::column-end:::
:::column span="":::
[`@Version`](at-version.md)
:::column-end:::
:::row-end:::

## File information

|||
|-|-|
|[\@FileCur](at-filecur.md)|[\@FileName](at-filename.md)|
|[\@Line](at-line.md)||
:::row:::
:::column span="":::
[`@FileCur`](at-filecur.md)
:::column-end:::
:::column span="":::
[`@FileName`](at-filename.md)
:::column-end:::
:::column span="2":::
[`@Line`](at-line.md)
:::column-end:::
:::row-end:::

## Macro functions

|||
|-|-|
|[\@CatStr](at-catstr.md)|[\@InStr](at-instr.md)|
|[\@SizeStr](at-sizestr.md)|[\@SubStr](at-substr.md)|
:::row:::
:::column span="":::
[`@CatStr`](at-catstr.md)
:::column-end:::
:::column span="":::
[`@InStr`](at-instr.md)
:::column-end:::
:::column span="":::
[`@SizeStr`](at-sizestr.md)
:::column-end:::
:::column span="":::
[`@SubStr`](at-substr.md)
:::column-end:::
:::row-end:::

## Miscellaneous

||||
|-|-|-|
|[\$](dollar.md)|[\?](q.md)|[\@\@:](at-at.md)|
|[\@B](at-b.md)|[\@F](at-f.md)||
:::row:::
:::column span="":::
[`$`](dollar.md)<br/>[`?`](q.md)
:::column-end:::
:::column span="":::
[`@@:`](at-at.md)
:::column-end:::
:::column span="":::
[`@B`](at-b.md)
:::column-end:::
:::column span="":::
[`@F`](at-f.md)
:::column-end:::
:::row-end:::

## Segment information

||||
|-|-|-|
|[\@code](at-code.md)|[\@CodeSize](at-codesize.md)|[\@CurSeg](at-curseg.md)|
|[\@data](at-data.md)|[\@DataSize](at-datasize.md)|[\@fardata](at-fardata.md)|
|[\@fardata?](at-fardata-q.md)|[\@Model](at-model.md)|[\@stack](at-stack.md)|
|[\@WordSize](at-wordsize.md)|||
:::row:::
:::column span="":::
[`@code`](at-code.md)<br/>[`@CodeSize`](at-codesize.md)<br/>[`@CurSeg`](at-curseg.md)
:::column-end:::
:::column span="":::
[`@data`](at-data.md)<br/>[`@DataSize`](at-datasize.md)<br/>[`@fardata`](at-fardata.md)
:::column-end:::
:::column span="":::
[`@fardata?`](at-fardata-q.md)<br/>[`@Model`](at-model.md)
:::column-end:::
:::column span="":::
[`@stack`](at-stack.md)<br/>[`@WordSize`](at-wordsize.md)
:::column-end:::
:::row-end:::

## See also

Expand Down
Loading