リストの皆様へ自己レスで御座います。
HIMにてコンパイルした結果です。
その記述により飛ばなかったり飛んだりすることが分かりました。
#define Func_1 ((void (*)(void))0x600) ----------------(1)
#define Func_1 ((void (*)())0x600)() ------------------(2)
void Func_0(void)
{
Func_1;
return;
}
以下はコンパイルした結果ですが。。。
(1)が飛ばないのはコンパイラの何かしらのオプションによる物なのでしょうか?
/*---------------------------(1の結果)-----------------------------*/
_Func_0: ; function: Func_0
.LINE 194
.LINE 196
.LINE 197
/*---------------------------(2の結果)-----------------------------*/
_Func_0: ; function: Func_0
.LINE 194
.LINE 195
JMP @1536:24
.LINE 196
.LINE 197
たけうち
----- Original Message -----
From: "Koji Takeuchi" <ktakeuchi@xxxxxxxxxxxxxxxxx>
To: <h8@xxxxxxx>
Sent: Thursday, November 18, 2004 4:58 PM
Subject: [H8-ML(5091)] 関数名では無くアドレスに直接飛ぶには
> リストの皆様へ
>
> いつもお世話になっております。
>
> 質問で御座います。
>
> void Func_0(void)
> {
> Func_1();
> return;
> }
>
> として、Func_1()がロム領域の600番地から始まっていたとした場合。
>
> void Func_0(void)
> {
> /* 600番地から始まるループ(関数)に飛びなさい */
> return;
> }
>
> 上のコメント部、/*〜*/をC言語で表現できませんでしょうか?
>
>
> 以上、宜しくお願いします。
>
> たけうち
>
>
>
>