こんにちは、横レス廣田です。
吉田 裕昭@コンラックス wrote:
>
> かめいさん こんにちは
> 吉田と申します。
>
> > [ベクタテーブルには何を書けばいいの?]
> 中略
> > そこで、ベクターテーブルに書くのは割り込み処理プログラムへのジャンプ命令
> > を書きます。(プログラムカウンタに次に飛ぶアドレスを入れる処理だけ書きます)
>
> H8のベクタテーブルには、割り込み処理ルーチンの
> 先頭アドレスのみ入れる様になっています。
>
ベクターテーブルに、絶対アドレスjmp命令を書いても、H8は正常に動作します。
これは、jmp命令と割り込みベクタが共に32ビットで表記されていて、実際にH8が
評価するのは下位の24ビットだけ、(ノーマルモードでは16ビットだけ)だからです。
ベクターテーブルにjmp命令を書いて、ここからさらにジャンプする手法はH8の
デバッグプログラムによく見られる手法で、日立製のデバッグモニタにも出てきて
います。
jmp @aa:8メモリ間接ジャンプ命令は、明らかに割り込みベクター領域にjmp @aa:24
命令が書かれる事を前提にしたような命令です。
デバッグモニタや、RTOSなどでは、ベクタテーブルにjmp @aa:24命令コードを書く
ことによって、テーブル値を一度レジスタに持ってきてからのレジスタ間接jmpより
場合によっては高速にjmpできるなどのメリットが有ります。
この手法はトリッキーなので、一般アプリケーション設計ではお勧めできるもの
では有りませんが、そう言う使い方も有ることで、ちょっと横レスを入れました。
では。
--
/******************************************************************************
My mail is reproduced precisely by making a setup of a lapel of your mail
software more than 80 characters.
Name: 廣田 正孝 "Masataka Hirota"
E-mail address: mhirota@xxxxxxxxxxxxx
GCD03040@xxxxxxxxxxx
******************************************************************************/