前回は、PHP版のPICアセンブラを紹介しました。いろいろ物足りないところもあったと思います。今回はアセンブラの仕組みを解説しますので、ぜひほしい機能を追加してみてください(筆者は、昔のParallaxのアセンブラのローカルラベルやビットレベルのequが好きだったので、いつかやろうと思っています)。 また、言語を実装するときに毎回出てくるような課題も扱っています。アセンブラ以外の言語の実装に興味のある方も、ご一読いただければ幸いです。 基本的な処理 アセンブリ言語は、とてもシンプルです。左端にラベル、タブのあとに、命令と、あれば引数か並びます。セミコロンからあとはコメントになります。命令は、CPUの命令以外に、アセンブラに指示を出す擬似命令があります。 処理としては、まずコメントを取り除きます。そして、スペースかタブの並びで、行を3つに分割します。すると、先頭がラベル、2番目が命令、3