ASのIM6100対応(その1)
カテゴリー:
前回楽ではなさそうと書きましたが、基本機能は動くようになりましたのでIM6100対応について数回に分けて書いていきたいと思います。
第1回目は複合命令の処理です。
前回3種類のアイデアを書きましたが最終的にはオリジナルのアセンブラ書式に近い3番目を採用しました。
ASの一般的な処理を知らないとわかりにくいと思いますので、簡単に説明しておきます。
まずSwitchTo_xxxx()
関数(これはCPU
疑似命令で切り替わったときに呼ばれます)で必要な命令を登録します。特殊な疑似命令が必要ならそれもここで登録します。
AddMR("AND", 00000);
AddMR("TAD", 01000);
ここでAddMR()
は同じ引数を繰り返すのが面倒で用意したラッパーなので、例えば1行目は以下のように書いたのと同じです。