私はアセンブラーを作成するという概念に非常に慣れていません。大量の資料を読んだ後でも、いくつかの概念に頭を悩ませることはまだ困難です。
ソースファイルを実際にトークンに分割するプロセスは何ですか?このプロセスは字句解析と呼ばれ、意味のある実際のコード例を上下に検索しましたが、それほど単純なコード例は大歓迎です;)
解析するときに、情報をツリーの上下に渡す必要がありますか?私が尋ねる理由は次のとおりです。
LD BC、nn
トークン化されたら、次の解析ツリーに変換する必要があります(???)
___ LD ___
| |
BC nn
ここで、このツリーをトラバースするときに、次のマシンコードを生成する必要があります。
01 n n
指示があった場合:
LD DE,nn
次に、出力は次のようになります。
11 n n
それが問題を提起することを意味しますが、LDノードはオペランドに基づいて異なるものを返しますか、それとも何かを返すのはオペランドですか?そして、これはどのように達成されますか?時間が許せば、より単純なコード例が優れています。
高度な既存のツールを見るよりも、ここで生のプロセスのいくつかを学ぶことに最も興味があるので、YaccまたはFlexに送る前にそのことを覚えておいてください。