Everything
2.20.1 入力規約

各パネル/ダイアログへの入力規約を次に示します。

(1)

文字セット

入力を許可している文字セットは次のとおりです。

表 2.24

文字セットの一覧

文字セット

概要

ASCII

半角のアルファベット(英字),半角の数字,および半角の記号

Shift-JIS

全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字,および半角のカタカナ

EUC-JP

全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字,および半角のカタカナ

UTF-8

全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字(中国語を含む),および半角のカタカナ

UTF-16

全角のアルファベット(英字),全角の数字,全角の記号,ひらがな,全角のカタカナ,漢字(中国語を含む),および半角のカタカナ

(2)

エスケープ・シーケンス

入力を許可しているエスケープ・シーケンスは次のとおりです。

表 2.25

エスケープ・シーケンスの一覧

エスケープ・シーケンス

意味

\0

0x00

null文字

\a

0x07

アラート

\b

0x08

バックスペース

\t

0x09

水平タブ

\n

0x0A

改行

\v

0x0B

垂直タブ

\f

0x0C

フォーム・フィード

\r

0x0D

キャリッジ・リターン

\"

0x22

ダブルクォーテーション

\'

0x27

シングルクォーテーション

\?

0x3F

疑問符(?と入力された場合も疑問符として扱います)

\\

0x5C

バックスラッシュ

(3)

数  値

数値を入力する際に許可している進数は次のとおりです。

表 2.26

進数の一覧

進数表記

概要

2進数

0bで始まり,0~1の数字が続く数値

8進数

0で始まり,0~7の数字が続く数値

10進数

0以外で始まり,0~9の数字が続く数値

16進数

0xで始まり,0~9の数字,およびa~fの英字が続く数値

(英字の大文字/小文字については,不問)

ただし, マークが表示されている入力エリアでは,0xの接頭辞は必要ありません。

(4)

式と演算子

式とは,定数,レジスタ名,SFR名,シンボル,およびこれらを演算子で結合したものを示します。

式には,アドレス式とウォッチ式があります。シンボルのアドレスを必要とする式をアドレス式,シンボルの値を必要とする式をウォッチ式と呼びます。

(a)

アドレス式と演算子

アドレス式では,シンボルのアドレスを使用して演算します。CPUレジスタ名が記述された場合のみ,値を使用して演算します。

アドレス式の基本入力形式は次のとおりです。

表 2.27

アドレス式の基本入力形式

説明

C言語変数名注1,2

C言語の変数のアドレス

[]注3

配列のアドレス

.メンバ名

構造体/共用体のメンバのアドレス

->メンバ名

ポインタの指し示す構造体/共用体のメンバのアドレス

CPUレジスタ名

CPUレジスタの値

SFR名

SFRのアドレス

ラベル名注4,EQUシンボル名注4,[即値]

ラベルのアドレス,EQUシンボルの値,即値アドレス

整定数

アドレス

注 1.

C言語(C89/C99)の変数を表します。

注 2.

C言語変数の値がレジスタに割り付いている場合は,エラーになります。

注 3.

インデックスとして入力された式は,ウォッチ式として解析します。

注 4.

ラベル名またはEQUシンボル名に“$”が含まれている場合,名前を“{}”で囲んでください(例:{$Label})。
“I”は虚数のキーワードとなるため,CPUレジスタの“I”を指定する場合は,“:REG”を付加してください(例:I:REG)。

 

また,「表 2.27 アドレス式の基本入力形式」から,次の演算子を用いたアドレス式を構成することができます。

表 2.28

演算子を用いたアドレス式の構成

説明

()

演算順序の指定

-

符号反転

!

論理否定

~

ビット反転

*

乗算

/

除算

%

剰余算

+

加算

-

減算

&

ビットごとの論理積

^

ビットごとの排他的論理和

|

ビットごとの論理和

変数,および関数は,変数/関数/整定数以外と演算子で結合することはできません(例:C言語変数名+ SFR名)。

(b)

ウォッチ式と演算子

ウォッチ式ではシンボルの値を使用して演算します。値が存在しない場合のみ,シンボルのアドレスを使用して演算します(例:main( ) + 1)。

ウォッチ式の基本入力形式は次のとおりです。

表 2.29

ウォッチ式の基本入力形式

説明

C言語変数名注1

C言語の変数の値

[]

配列の要素値

.メンバ名

構造体/共用体のメンバ値

->メンバ名

ポインタの指し示す構造体/共用体のメンバ値

*

ポインタの変数の値

&

配置アドレス

CPUレジスタ名

CPUレジスタの値

SFR名

SFRの値

ラベル名注2,EQUシンボル名注2,[即値]

ラベルの値,EQUシンボルの値,即値アドレスの値

整定数

整数の定数値

浮動定数

浮動小数点の定数値

文字定数

文字定数値

注 1.

C言語(C89/C99)の変数を表します。

注 2.

ラベル名またはEQUシンボル名に“$”が含まれている場合,名前を“{}”で囲んでください(例:{$Label})。
虚数の値には,大文字の“I”を掛けてください(例:1.0 + 2.0*I)。なお“I” は虚数のキーワードとなるため,CPUレジスタの“I”を指定する場合は,“:REG”を付加してください(例:I:REG)。

 

また,「表 2.29 ウォッチ式の基本入力形式」から,次の演算子を用いたウォッチ式を構成することができます。次表の演算子は,C言語仕様に従って式を解析します。

表 2.30

演算子を用いたウォッチ式の構成

説明

()

演算順序の指定

!

論理否定

~

ビット反転

*

乗算

/

除算

%

剰余算

+

加算

-

減算

&

ビットごとの論理積

^

ビットごとの排他的論理和

|

ビットごとの論理和

変数,および関数は,変数/関数/整定数以外と演算子で結合することはできません(例:C言語変数名+ SFR名)。

 

注意 1.

下記のようなchar型の一次元配列がレジスタやメモリの複数個所に割り付いていた場合は,ウォッチ パネル,およびローカル変数 パネルに配列“array”を登録しても値のカラムに文字列を表示できません。
char array[5] = "ABCD";

注意 2.

ローカル変数 パネルの[スコープ]にて“カレント”以外を選択中は,レジスタに割り付いた変数の値は正しく表示できません。また,その変数の値を編集することもできません。

注意 3.

以下の条件をすべて満たす変数を定義した場合,ウォッチ パネルローカル変数 パネルでは,対象のメンバ変数の割り付き位置文字列が変数全体の割り付き位置文字列で表示されます。

【条件】

<1>

定義した変数が複数のアドレスやレジスタに割り付いている。
(アドレスカラムに2つ以上のアドレスやレジスタ名が表示される場合)

<2>

変数に以下の型のメンバが定義されている。
構造体,クラス,配列,共用体のいずれか

 

【例】

struct Mem {
    long m_base;
};
struct Sample {
    long m_a;
    struct Mem m_b; <-条件<2>に該当
};
 
main () {
    struct Sample obj;
}

 

表示結果:

"obj"                        -    { R1:REG, R2:REG }      (struct Sample)
    L m_a           0x00000000    { R1:REG }              (long)
    L m_b                    -    { R1:REG, R2:REG }      (struct Base)
        L m_base    0x00000000    { R2:REG }              (long)

注意 4.

ウォッチ パネルで0x10000を超えるサイズの変数は値,型,アドレスが「?」表示になります。