Renesas Synergy™

FAQ 1007963 : tp(テキスト・ポインタ)とは何ですか?

回答

アプリケーションのテキスト領域が、配置される位置に依存することのない参照 (PIC) を実現するために用意されるポインタです。
つまり、テキストは tp 相対で参照されます。
CA850は tp が正しく設定 ( テキストの先頭) されていることを前提としたコードを出力するので、 ポインタの値を正しく設定する必要があります。

tp はアプリケーションに 1 つだけではなく、セグメント単位で複数作成することも可能です。
ただし複数生成した場合、tp の切り替えはアプリケーションで明示的に行う必要があります。

【 tp の設定 】

(シンボル・ディレクティブ内)
__tp_TEXT @ %TP_SYMBOL{TEXT1};

(スタート・アップ・モジュール内)
mov #__tp_TEXT, tp


上の例では、リンク・ディレクティブで tp シンボル値が TEXT1 セグメントの先頭を指すように設定します。
tp シンボル名が "__tp_TEXT " なので、リンク時に決定される TEXT1 セグメントの先頭アドレスが、 シンボル "__tp_TEXT " にセットされます。

この値をtpに設定するために、スタート・アップ・モジュール等で、変数 " tp " にこの "__tp_TEXT" の値を代入する式 ( mov #__tp_TEXT, tp) を記述することにより、 tp に正しくテキスト・ポインタの値が設定されます。

 

適用製品

V850用コンパイラパッケージ [CA850]
他にご質問がございましたら、リクエストを送信してください