2. 機 能
2.18 入力値について
2.18.1 入力規約
(4) 式と演算子
式とは,定数,レジスタ名,SFR名,シンボル,およびこれらを演算子で結合したものを示します。
式には,アドレス式とウォッチ式があります。シンボルのアドレスを必要とする式をアドレス式,シンボルの値 を必要とする式をウォッチ式と呼びます。
(a) アドレス式と演算子
アドレス式では,シンボルのアドレスを使用して演算します。CPUレジスタ名が記述された場合のみ,値を 使用して演算します。
アドレス式の基本入力形式は次のとおりです。
表 2.26 アドレス式の基本入力形式
注 1. C言語(C89/C99)の変数を表します。
注 2. C言語変数の値がレジスタに割り付いている場合は,エラーになります。
注 3. インデックスとして入力された式は,ウォッチ式として解析します。
注 4. ラベル名またはEQUシンボル名に“$”が含まれている場合,名前を“{}”で囲んでください
(例:{$Label})。
“I”は虚数のキーワードとなるため,CPUレジスタの“I”を指定する場合は,“:REG”を付加して ください(例:I:REG)。
また,「表 2.26 アドレス式の基本入力形式」から,次の演算子を用いたアドレス式を構成することができま す。
表 2.27 演算子を用いたアドレス式の構成
8進数 0で始まり,0~7の数字が続く数値 10進数 0以外で始まり,0~9の数字が続く数値
16進数 0xで始まり,0~9の数字,およびa~fの英字が続く数値
(英字の大文字/小文字については,不問)
ただし, マークが表示されている入力エリアでは,0xの接頭辞は必要ありません。
式 説明
C言語変数名注1,2 C言語の変数のアドレス 式[式]注3 配列のアドレス
式.メンバ名 構造体/共用体のメンバのアドレス
式->メンバ名 ポインタの指し示す構造体/共用体のメンバのアドレス
CPUレジスタ名 CPUレジスタの値
SFR名 SFRのアドレス
ラベル名注4,EQUシンボル名注4,[即値] ラベルのアドレス,EQUシンボルの値,即値アドレス
整定数 アドレス
式 説明
(式) 演算順序の指定
-式 符号反転
!式 論理否定
~式 ビット反転
式*式注 乗算 式/式注 除算
進数表記 概要
注 変数,および関数は,変数/関数/整定数以外と演算子で結合することはできません(例:C 言語変数名+ SFR名)。
(b) ウォッチ式と演算子
ウォッチ式ではシンボルの値を使用して演算します。値が存在しない場合のみ,シンボルのアドレスを使用し て演算します(例:main( ) + 1)。
ウォッチ式の基本入力形式は次のとおりです。
表 2.28 ウォッチ式の基本入力形式
注 1. C言語(C89/C99)の変数を表します。
注 2. ラベル名またはEQUシンボル名に“$”が含まれている場合,名前を“{}”で囲んでください
(例:{$Label})。
虚数の値には,大文字の“I”を掛けてください(例:1.0 + 2.0*I)。なお“I” は虚数のキーワード となるため,CPUレジスタの“I”を指定する場合は,“:REG”を付加してください(例:
I:REG)。
また,「表 2.28 ウォッチ式の基本入力形式」から,次の演算子を用いたウォッチ式を構成することができま す。次表の演算子は,C言語仕様に従って式を解析します。
表 2.29 演算子を用いたウォッチ式の構成 式%式注 剰余算 式+式注 加算 式-式注 減算
式&式注 ビットごとの論理積
式^式注 ビットごとの排他的論理和 式|式注 ビットごとの論理和
式 説明
C言語変数名注1 C言語の変数の値
式[式] 配列の要素値
式.メンバ名 構造体/共用体のメンバ値
式->メンバ名 ポインタの指し示す構造体/共用体のメンバ値
*式 ポインタの変数の値
&式 配置アドレス
CPUレジスタ名 CPUレジスタの値
SFR名 SFRの値
ラベル名注2,EQUシンボル名注2,[即値] ラベルの値,EQUシンボルの値,即値アドレスの値
整定数 整数の定数値
浮動定数 浮動小数点の定数値
文字定数 文字定数値
式 説明
(式) 演算順序の指定
!式 論理否定
式 説明
注 変数,および関数は,変数/関数/整定数以外と演算子で結合することはできません(例:C 言語変数名+ SFR名)。