[H8-ML(2347)] Re: 3664 のアドレス幅の問題かな?(とりあえず解決)
From: Kosaka Toshifumi <kosaka@xxxxxxxxxxxxxx>
Date: 2002年11月06日(水)10時23分36秒
こんにちは,小坂です。

「arg_ptr-=2; /*なぜかわからないが,ここで2を引かないと動かない*/」
の問題はとりあえず解決しました。

TK303さんより,なんらかの組み合わせで解決する方法があることがわかり,励みになりました。
わかってみるととんでもないところに誤りが見つかるものですね。

問題はスタートアップルーチンにありました。
     MOV.L    #H'FF80,ER7    ;スタックポインタ設定
これが正解ですが,AKI3664F付属のサンプルプログラムのいくつかは
     MOV.L    #H'FF7F,ER7    ;スタックポインタ設定
と書いてあり,私が無批判に誤った方をコピー&ペーストしてしまった結果でした。
push命令ではアドレスが2または4しか変化しませんし,2または4を引いてからレジスタ値を退避させるので,スタックポインタの設定はFF80が正解でした。
stdarg.h中には,アドレスが奇数だったらむりやり偶数にしてしまえということが書いてあり(なんのためかわかりませんが),これとの組み合わせで変なことが起こっていたようです。

お騒がせ致しました。

****************************************************
〒193 0997 八王子市椚田町1220-2 東京工業高等専門学校
情報工学科 小坂敏文 phone0426-68-5199 Fax68-5098

スレッド概略
[表示中](起点)


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]