Everything
5.1.6

数値、シンボルおよび演算子を組み合わせた式を記述できます。

-

演算子と数値の間には空白文字またはタブを記述できます。

-

演算子は複数組み合わせて記述できます。

-

シンボル値として式を記述する場合は、式の値がアセンブル時に確定するように式を記述する必要があります。

-

式の項に文字定数は使用できません。

-

演算結果の範囲は、-2147483648~2147483647となります。演算結果がこの範囲を超えた場合のオーバフローの判断は行いません。

(a)

演算子

プログラムに記述できる演算子の一覧を示します。

-

単項演算子

表 5.7

単項演算子

演算子

機能

+

続く値を正の値として扱います。

-

続く値を負の値として扱います。

~

続く値の論理否定値を扱います。

SIZEOF

オペランドに指定したセクションのサイズ(バイト数)を値として扱います。

TOPOF

オペランドに指定したセクションの開始アドレス値として扱います。

SIZEOF, TOPOFは、オペランドとの間に空白文字またはタブを記述します。

(例) SIZEOF program

-

二項演算子

表 5.8

二項演算子

演算子

機能

+

左辺値と右辺値を加算します。

-

左辺値から右辺値を減算します。

*

左辺値と右辺値を乗算します。

/

左辺値を右辺値で除算します。

%

左辺値を右辺値で割った余りを扱います。

>>

左辺値を右辺値回右へビットシフトします。

<<

左辺値を右辺値回左へビットシフトします。

&

左辺値と右辺値のビット毎の論理積値を扱います。

|

左辺値と右辺値のビット毎の論理和値を扱います。

^

左辺値と右辺値のビット毎の排他的論理和値を扱います。

-

条件演算子

条件演算子は制御命令".IF", ".ELIF" のオペランドにだけ記述できます。

表 5.9

条件演算子

演算子

機能

>

左辺値が右辺値より大きいことを評価します。

<

左辺値が右辺値より小さいことを評価します。

>=

左辺値が右辺値以上であることを評価します。

<=

左辺値が右辺値以下であることを評価します。

==

左辺値が右辺値と等しいことを評価します。

!=

左辺値が右辺値と等しくないことを評価します。

-

演算優先順位変更演算子

表 5.10

演算優先順位変更演算子

演算子

機能

()

() で囲った演算を最優先で行います。一つの式に複数の() が記述されている場合は、左側が優先されます。() はネストした記述ができます。

(b)

式の演算優先順位

オペランドに記述されている式について、次に示す優先順位に従い演算を行った結果の数値を値として扱います。

-

演算子がもつ優先順位の高いものから演算します。演算子の優先順位を以下表に示します。

-

同一の優先順位を持つ演算子は、左から順に演算を行います。

-

()で囲ったものが、優先順位が一番高くなります。

表 5.11

式の演算優先順位

優先順位

演算子の種類

演算子

1

演算優先順位変更演算子

()

2

単項演算子

+, -, ~, SIZEOF, TOPOF

3

ニ項演算子1

*, /, %

4

ニ項演算子2

+, -

5

ニ項演算子3

>>, <<

6

ニ項演算子4

&

7

ニ項演算子5

|, ^

8

条件演算子

>, <, >=, <=, ==, !=