GUIとテキストと



読みにくいH8アセンブラのプログラムと格闘中です。けっこう仕様変更があるんですが、あのプログラムに手を入れるのは厄介な仕事になりそうです。


ルネサス純正のアセンブラだとif、for、whileなどの構造化制御文がマクロ的に使えるのですが、もともとサードパーティーアセンブラで開発したプログラムをルネサス純正に移植したらしく、全く構造化されてません。まあ、本来アセンブラとはそういうものなのですが、分岐先のラベルに AAAA: などというようなテキトーな名前がつけられているので、非常に読みにくいです。あと、隠蔽されるべき下層のサブルーチンが別のモジュールから直接コールされてたり。


まあ、何度も仕様変更され、何人ものプログラマーの手が加わった結果、一貫性のない記述になってしまってる部分もあります。いっそ全面書き直ししたいくらいなのですが、時間とリスクから言って許してもらえないでしょうね。


それはそうと、不思議だったのが、セクションのアドレス指定。ソースファイルのどこを読んでも配置アドレスの記述が無いのです。( .SECTION命令でLOCATE= が書かれていない。) なのにビルドするとちゃんとベクタは0番地から、スタックはRAMの最後尾にというように適切にマップされています。


なんでかなと思っていたら、どうやらHEW(ルネサス統合開発環境)で指定しているようです。 [ビルド] > [H8S,H8/300 Standard Toolchain] > [最適化リンカ]タブ > [カテゴリ]リストから[セクション] > [編集]ボタン でセクションのアドレス指定ができるようです。でもこういうことはGUIよりもテキスト編集でやったほうが効率的ですよね。


デバッガとかはたしかにGUIの方が便利。でもGUIとテキストには一長一短があるのだから上手に使い分けないといかんと思います。