式とは,シンボル注1,定数(数値定数注2,文字定数),前述の2つに演算子を付加したもの,または演算子で結合したものです。
注 1.  | 式の要素として指定可能なシンボルは,ネーム,ラベル,外部参照名のみです。ただし,SIZEOF演算子,およびSTARTOF演算子に対してはセクション名を指定可能です。  | 
 
注 2.  | デバイス・ファイル読み込み時には,式の中でSFR略号,および拡張SFR略号を定数と同様に扱うことができます。  | 
 
 
式を構成する演算子以外の要素を項といい,記述された左側から順に第1項,第2項,…と呼びます。項のリロケーション属性により,使用可能な演算子が限られます。
 
演算子には「表 5.4  演算子の種類」に示すものがあり,演算実行上の優先順位が「表 5.5  演算子の優先順位」のように決められています。
演算の順序を変更するには,かっこ“ ( ) ”を使用します。
 
上記の演算子は,単項演算子,特殊単項演算子,2項演算子に分けられます。
| 
 
単項演算子 
 | 
 
+符号,-符号,~,HIGH,LOW,HIGHW,LOWW,MIRHW,MIRLW,SMRLW,DATAPOS,BITPOS,STARTOF,SIZEOF 
 | 
| 
 
2項演算子 
 | 
 
+,-,*,/,%,&,|,^,==,!=,>,>=,<,<=,&&,||,>>,<< 
 | 
 
| 
 | 
 | 
 | 
| 
 | 
 | 
 
+符号,-符号,~,HIGH,LOW,HIGHW,LOWW,MIRHW,MIRLW,SMRLW,DATAPOS,BITPOS,STARTOF,SIZEOF 
 | 
| 
 | 
 
*,/,%,>>,<< 
 | 
| 
 | 
 
+,- 
 | 
| 
 | 
 
&,|,^ 
 | 
| 
 | 
 
==,!=,>,>=,<,<= 
 | 
| 
 | 
 
&&,|| 
 | 
 
 
式の演算は,次の規則に従います。
-  | 演算の順序は,演算子の優先順位に従います。 
同一順位の場合は,左から右に演算されます。単項演算子の場合は,右から左に演算されます。  | 
 
-  | かっこ“ ( ) ”の中の演算は,かっこの外の演算に先立って行われます。  | 
 
-  | 式の演算は,32ビットで行います。 
式中に記述した定数,式の評価途中,および評価結果が32ビットを越えた場合は,下位32ビットを有効とします。その場合エラーは出力されません。 
ただし,.DB8疑似命令のオペランドに記述された式では,各々の項を64ビットとして扱います。  | 
 
-  | 演算の各項は符号なし整数として扱われますが,以下の場合は符号付き整数として扱われます。  | 
 
乗算,除算,剰余算,論理シフトの第2項
-  | リロケータブル項のアセンブル時の評価値はゼロです(評価値はリンク時に決定されます)。  | 
 
| 
 | 
 | 
| 
 
5 + 8 - 6 * 2 / 4 
 | 
 
10 
 | 
| 
 
5 + (8 - 6) * 2 / 4 
 | 
 
6 
 | 
| 
 
(5 + 8 - 6)* 2 / 4 
 | 
 
3 
 | 
| 
 
2 * (0x0F - (0x0B & (0x0A | 0x0F))) 
 | 
 
8 
 | 
| 
 
2 * 0x0F - 0x0B & 0x0A | 0x0F 
 | 
 
0x0F 
 | 
| 
 
HIGH(-1) 
 | 
 
0xFF 
 | 
| 
 
HIGH(0x0FFFF) 
 | 
 
0xFF 
 | 
| 
 
2 + 4 * 5 
 | 
 
22 
 | 
| 
 
(2 + 3) * 4 
 | 
 
20 
 | 
| 
 
10/4 
 | 
 
2 
 | 
| 
 
0 - 1 
 | 
 
0xFFFFFFFF 
 | 
| 
 
-1 > 1 
 | 
 
1(真) 
 | 
| 
 
EXT注 + 1 
 | 
 
0 
 |