![[Toc]](../../toc.gif)
![[Index]](/idx.gif)
Operators, Assignment Expressions, and Conditional Expressions
The following operators are valid in the PMI syntax:
<postfix unary additive op> ::= '++' | '--'
<additive op> ::= '+' | '-'
<shift op> ::= '<<' | '>>'
<bitwise op> ::= '&' | '|' | '^'
<relational op> ::= '<' | '>' | '==' | '<=' | '>=' | '!='
<binary assignment op> ::= '&=' | '|= ' | '<<=' | '>>=' | '+=' | '-=' | '^='
<unary negation op> ::= '˜'
<assignment op> ::= '='
Both assignment and conditional expressions in the PMI syntax are limited
to a single expression term. The value of a conditional expression is
either TRUE (nonzero) or FALSE (zero).
An assignment expression and example are shown below.
<assignment> ::=
<register><postfix unary additive op> |
<register><binary assignment op> [<constant>|<register>] |
<register><assignment op> { <PMI Keyvariable> |
<register operand>|<constant> } |
<register><assignment op> {<register operand> | <PMI keyvariable>}
{<additive op>|<shift op> | <bitwiseop>}
{<constant> | <register>
<register operand> ::= [<unary negation op>]<register>
Examples:
r0 = VerticalRefresh;
r0 <<= 0x10;
r1++; r2--;
r1 = ˜r2 ^ 0x04;
r2 = XResolution << r1;
r1 = r2 + 0xffff;
A conditional expression and example are shown below.
<condition> ::=
'(' { <PMI Keyvariable> | <register>} {<relational op> | <bitwise op>}
{ <PMI Keyvariable> | <register> | <constant> } ')'
Examples:
(XResolution == 1024)
(r1 & 0x0fe0)
(r2 == VerticalRefresh)
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs