式とは,シンボル,定数,および、前述の2つに演算子を付加したもの,または演算子で結合したものです。
式を構成する演算子以外の要素を項といい,記述された左側から順に第1項,第2項,…と呼びます。
演算子には「表 5.3 演算子の種類」に示すものがあり,演算実行上の優先順位が「表 5.4 演算子の優先順位」のように決められています。
演算の順序を変更するには,かっこ“ ( ) ”を使用します。
例を示します。
上記の例では,“5 * (SYM+1)”が式です。“5”が第1項,“SYM”が第2項,“1”が第3項です。“*”,“+”,“( )”が演算子です。
上記の演算子は,単項演算子,2項演算子に分けられます。
単項演算子
|
+符号,-符号,!,HIGH,LOW,HIGHW,LOWW,HIGHW1
|
2項演算子
|
+,-,*,/,MOD(%),&,|,^,==,!=,>,>=,<,<=,>>,<<,&&,||
|
|
|
|
|
|
+符号,-符号,!,HIGH,LOW,HIGHW,HIGHW1,LOWW,STARTOF,SIZEOF
|
|
*,/,%,>>,<<
|
|
&,|,^
|
|
+,-
|
|
==,!=,>,>=,<,<=
|
|
&&,||
|
式の演算は,次の規則に従います。
- | 演算の順序は,演算子の優先順位に従います。
同一順位の場合は,左から右に演算されます。単項演算子の場合は,右から左に演算されます。 |
- | かっこ“ ( ) ”の中の演算は,かっこの外の演算に先立って行われます。 |
- | 式の演算は,符号なし32ビットで行います。ただし,乗算,除算,剰余算,および,論理シフトの第2項は符号付き32ビットとして扱います。
演算中に32ビットを越えてオーバーフローした場合,オーバーフローした値は無視されます。 |
- | 定数が32ビットを越える場合には,下位32ビットを有効として計算されます。 |
- | 除算では,小数部分を切り捨てます。
除算がゼロの場合は,エラーとなります。 |
- | 相対値式のアセンブル時の評価値はゼロです(評価値はリンク時に決定されます)。 |
|
|
2 + 4 * 5
|
22
|
(2 + 3) * 4
|
20
|
10/4
|
2
|
0 - 1
|
0xFFFFFFFF
|
EXT注 + 1
|
0
|