Синтаксис выражений начинается как MASM_выражение.
MASM_выражение ::= выражение_1
м_выражение_1 ::= SHORT м_выражение_1 .TYPE м_выражение_1 SMALL м_выражение_1 (преобразование в 16-битовое смещение [только для процессора 386]) LARGE м_выражение_1 (преобразование в 32-битовое смещение [только для процессора 386]) м_выражение_2
м_выражение_2 ::= м_выражение_3 OR м_выражение_3. м_выражение_3 ХOR м_выражение_3. м_выражение_3
м_выражение_3 ::= м_выражение_4 AND м_выражение_4. м_выражение_4
м_выражение_4 ::= NOT м_выражение_4 м_выражение_5
м_выражение_5 ::= м_выражение_6 'EQ' м_выражение_6. м_выражение_6 'NE' м_выражение_6. м_выражение_6 'LT' м_выражение_6. м_выражение_6 'LE' м_выражение_6. м_выражение_6 'GT' м_выражение_6. м_выражение_6 'GE' м_выражение_6. м_выражение_6
м_выражение_6 ::= м_выражение_7 '+' м_выражение_7. м_выражение_7 '-' м_выражение_7. м_выражение_7
м_выражение_7 ::= м_выражение_8 '*' м_выражение_8. м_выражение_8 '/' м_выражение_8. м_выражение_8 'MOD' м_выражение_8. м_выражение_8 'SHR' м_выражение_8. м_выражение_8 'SHL' м_выражение_8. м_выражение_8
м_выражение_8 ::= + выражение_8 - выражение_8 выражение_12
м_выражение_10 ::= OFFSET указатель SEG указатель SIZE идентификатор LENGTH идентификатор WIDTH идентификатор MASK идентификатор THIS цел_тип идентификатор ( указатель ) [ указатель ]
м_выражение_10 ::= м_выражение_11 PTR м_выражение_10 м_выражение_11 OFFSET м_выражение_10 SEG м_выражение_10 LOW м_выражение_10 HIGH м_выражение_10 TYPE м_выражение_10 THIS м_выражение_10
м_выражение_11 ::= м_выражение_8 : м_выражение_8.
м_выражение_12 ::= м_выражение_13 [м_выражение_13.(подразумеваемое сложение, только если есть '[' или '(') м_выражение_13 (м_выражение_13.(подразумеваемое сложение, только если есть '[' или '(') м_выражение_13'.'м_выражение_10
м_выражение_13 ::= LENGTH идентификатор SIZE идентификатор WIDTH идентификатор MASK идентификатор ( м_выражение_1 ) [ м_выражение_1 ] м_выражение_10