こんばんは吉川です 先日よりお騒がせしていたH8tinyの動作が不安定な件、 解決しました。 リストファイルを調べていてやっと気が付きました。 分かってみれば、お恥ずかしいのですがプログラムミスで原因は 以下の行でした。 −−−−−−−−−−−− JMP @009 ?008 〜 ?009 〜 RTS −−−−−−−−−−−− これはローカルラベルを使ってサブルーチン内で分岐する所なので すが、「@?009」と書くべき所を、ここだけ「?」を忘れてました。 結果、ここからアドレス「0009H」に飛んでしまっていたのです、 RTSを通らないので、スタックを浪費して不安定になっていたようです。 失敗の言い訳を言わせてもらうと ①、Z80のアセンブラでは、こういうローカルラベルの書き方で 失敗した事はなかった。 ②、日立のアセンブラマニュアルにもローカルラベルの例として 数字だけの書き方が示されていた。 ③、このような書き方はアセンブラがエラーを出してくれると思い込んでいた。 (アドレス指定が10進表記でも出来るとは思わなかった) ということで、ローカルラベルといえども数字だけを使うのは止めた方が よいですね。 アルファベットが入ってれば(A01とか)アセンブラがエラーを出してくれる 事を確認できました。 ではまた