オフィシャル(?)のGMC-4専用アセンブラへの要望とか。
オフィシャル(?)のGMC-4専用アセンブラの要望とか。
2パスにして欲しいです。
Gakken GMC-4 Assembler
http://www.musashinodenpa.com/misc/GMC4/
どうも下の方にあるラベルへの指定を
上の方で指定しても見つけられないみたいなんですね。
アドレス指定すればちゃんとジャンプしてくれるけど。
つまり1パスアセンブラということ。
C言語で例えるなら、
プロトタイプ宣言してない関数は
メイン関数より上に書いておかないと
関数が見つからないというエラーが出る風に。
(Cコンパイラの場合は基本的に 1パスコンパイラ として
設計できるようにするためあえてこうしてるのだそうな。)
本誌プログラム入門の15秒カウンタとか、
ラベル指定で書くとジャンプ処理が変になったりするのは
その性なようですね。
15秒カウンタ−ラベル指定版
START: TIY 1 CNTUP: TIA 9 CAL TIMR CY AO CY CAL SHTS AIY 1 JUMP CNTSTP JUMP CNTUP CNTSTP: CAL ENDS END: JUMP END
この場合 AIY 1 にて桁あふれが発生した際、
CCNTSTP: ラベルに飛んでもらい、
エンド音を鳴らしてプログラム終了となるのが正しいのですが、
上記アセンブラで出力される
JUMP CNTSTP 部分に対応するジャンプ先アドレスが
0C (固定?)という全然無関係な値(アドレス)に置き換えられているんです。
使い勝手が良く、実は多用させて頂いてるので
ここを何とかして頂けると尚嬉しいといった感じです。