Operator precedence order

The following table lists the operators Turbo Assembler provides and their
precedences in order of priority (highest is first, lowest is last).

Ideal mode operator precedence

1. (), [], LENGTH, MASK, OFFSET, SEG, SIZE, WIDTH
2. HIGH, LOW
3. +, - (unary)
4. *, /, MOD, SHL, SHR
5. +, - (binary)
6. EQ, GE, GT, LE, LT, NE
7. NOT
8. AND
9. OR, XOR
10. : (segment override)
11. . (structure member selector)
12. HIGH (before pointer), LARGE, LOW (before pointer), PTR,
SHORT, SMALL, SYMTYPE


MASM mode operator precedence

1. <>, (), [], LENGTH, MASK, SIZE, WIDTH
2. . (structure member selector)
3. HIGH, LOW
4. +, - (unary)
5. : (segment override)
6. OFFSET, PTR, SEG, THIS, TYPE
7. *, /, MOD, SHL, SHR
8. +, - (binary)
9. EQ, GE, GT, LE, LT, NE
10. NOT
11. AND
12. OR, XOR
13. LARGE, SHORT, SMALL, .TYPE


──────────────────────────────────────────────────────────────────────────

Operator precedence determines the order in which the terms of an
expression will be evaluated. Operators with the highest precedence
will be evaluated before operators with lower precedence.

Notes: Operators on the same line have equal precedence.

Operators of equal precedence are evaluated from
left to right.

Operations in parentheses are performed first.