Mathematical expressions can typically be used anywhere a number

is required in an addressing mode or directive parameter.

Note that care must be taken when using expressions because the

assembler, in many cases, does not check for overflows while

computing the value of an expression. For example, the expression

($FFFFFFFF + 1) / 2 will overflow during calculations and produce

a value of 0 when a value of $7FFFFFFF may be expected. All

calculations are performed using 32-bit binary arithemetic and

then converted to the correct size for code generation.

See Mathematical Values,050, for information about legal value

formats for mathematical expressions.

**Order of Operation:** The assembler uses standard order of

` `

operation rules to evaluate mathematical expressions.

` `

The following rules list the order of operations. For

` `

operations within the same class (such as plus and minus),

` `

the assembler evaluates the expression from left to right.

1. All expressions in parentheses are evaluated.

2. All negations and logical NOT operations are completed.

3. All logical AND and OR operations completed.

4. All multiply, division, and MOD operations are completed.

5. All addition and subtraction operations are completed.

**List of Operations:** The following is a list of legal operations and

` `

the corresponding syntax:

` `

**Operation Syntax Resulting value**

` `

Negation` `

` `

- a` `

` `

two�s compliment
` `

Logical NOT` `

! a` `

` `

one�s compliment
` `

Logical AND` `

a AND b` `

bitwise AND
` `

Logical OR` `

a OR b` `

bitwise OR
` `

Multiply` `

` `

a * b` `

` `

integer multiplication
` `

Division` `

` `

a / b` `

` `

integer division
` `

` `

` `

` `

a DIV b` `

integer division
` `

Modulus` `

` `

a MOD b` `

remainder of division
` `

Addition` `

` `

a + b` `

integer addition
` `

Subtraction` `

a - b` `

` `

integer subtraction
.050052