Recognized operators in expressions:
|	bitwise OR		||	boolean OR
^	bitwise XOR		^^	boolean XOR
&	bitwise AND		&&	boolean AND
>>	bit-shift right		>	test if above
>>>	signed bit-shift right	<	test if below
<<	bit-shift left		>=	test if above-or-equal
><	bit-mirror		<=	test if below-or-equal
+	addition		==	test if equal
-	subtraction		!=	test if not equal
*	multiplication		=>	same as >=
/	division		=<	same as <=
%	modulo (A-(A/B*B))	<>	same as !=
**	power

Implicit operater precedence is handled in the listed order, with increasing
precedence: (Brackets specify explicit precedence of an expression.)
 boolean operators OR, XOR, AND (each has a different precedence)
 comparison operators
 bitwise operators OR, XOR, AND (each has a different precedence)
 shift and bit-mirror operators
 addition and subtraction operators
 multiplication, division and modulo operators
 power operator

Recognized unary operators: (modifying the next number)
+	positive (does nothing)
-	negative
~	bitwise NOT
!	boolean NOT
?	absolute value
!!	convert to boolean

Note that the power operator does not affect unary operator handling.
For instance, "- 2 ** 2" is parsed as "(-2) ** 2" and evaluates to 4.

Although a negative unary and signed bit-shift right operator are provided
the expression evaluator is intrinsically unsigned. Particularly the division,
multiplication, modulo and all comparison operators operate unsigned. Due to
this, the expression "-1 < 0" evaluates to zero.

Recognized terms in an expression:
 32-bit immediates
 8-bit registers
 16-bit registers including segment registers (except FS, GS)
 32-bit compound registers made of two 16-bit registers (eg DXAX)
 32-bit registers and FS, GS only if running on a 386+
 64-bit MMX registers only if running on a CPU with MMX
  MM0L accesses the low 32 bits of the register
  MM0H accesses the high 32 bits of the register
  MM0Z reads the low 32 bits; writes the full register (zero-extend)
  MM0S reads the low 32 bits; writes the full register (sign-extend)
  MM0 is an alias for the MM0Z syntax
 32-bit variables V00..VFF
 32-bit special variables DCO, DCS, DAO, DAS, DIF, DPI, PPI
 16-bit special variables DPR, DPP, PSP, PPR
  (fuller variable reference in the manual)
 byte/word/3byte/dword memory content (eg byte [seg:ofs], where both the
  optional segment as well as the offset are expressions too)
The expression evaluator case-insensitively checks for names of variables
and registers as well as size specifiers.

Enter ?R to display the recognized register names.
Enter ?V to display the recognized variables.
