式の演算は,項を演算子で結びつけて行います。項として記述できるものには,定数,ネーム,ラベルがあり,各項はリロケーション属性を持ちます。
各項の持つリロケーション属性の種類により,その項に対して演算可能な演算子が限られます。したがって,式を記述する場合には,式を構成する各項のリロケーション属性に留意することが大切です。
各項をリロケーション属性により分類すると,アブソリュート項,リロケータブル項に分けられます。
次に,演算におけるリロケーション属性の種類とその性質,およびそれに該当する項を示します。
演算可能な演算子と項の組み合わせをリロケーション属性により分類すると,次のようになります。
HIGH/HIGHW/LOW/LOWWの各演算子は入れ子を行う事が出来ます。
定数値を示す式を“絶対式”と呼びます。絶対式は,命令においてオペランドを指定する場合,または疑似命令において値などを指定する場合に用いることができます。通常,絶対式は,定数,またはシンボルによって構成されます。次に示した形式が絶対式として扱われます。
定義済みのシンボル参照を指定した場合,そのシンボルに対して定義した値の定数が指定されたものとして扱われます。したがって,定数式は,定義済みのシンボル参照を,その構成要素として持つことができます。
ただし,シンボル参照時点において未定義なシンボル,および値が確定しないシンボルの場合は,定数式として扱われません。
シンボルに関する式には,次のものがあります(“±”は“+”か“-”のどちらかになります)。
ここで言う“シンボル”とは,アブソリュート項であるシンボル,すなわち,モジュール内で定数で定義されたネームで,かつ,その時点において未定義なシンボル,および値の確定しないシンボル参照を指します。定義済みのシンボル参照を指定した場合は,そのシンボルに対して定義した値の“定数”が指定されたものとして扱います。
特定のアドレスからのオフセット値注1を示す式を“相対式”と呼びます。相対式は,命令においてオペランドを指定する場合,データ定義疑似命令において値を指定する場合に用いることができます。通常,相対式は,シンボル(ラベル,外部参照名)によって構成されます。
次に示した形式注2が相対式として扱われます(“±”は“+”か“-”のどちらかになります)。
“-シンボル+ラベルの参照”の形式の式を“ラベルの参照-シンボル”の形式の式とみなすことはできますが,“ラベルの参照-(+シンボル)”の形式の式を“ラベルの参照-シンボル”の形式の式とみなすことはできません。このため,かっこ“( )”は定数式においてのみ用いるようにしてください。 |