Schreiben eines Z80-Assemblers - Lexieren von ASM und Erstellen eines Analysebaums mit Komposition?

Ich bin sehr neu im Konzept, einen Assembler zu schreiben, und selbst nachdem ich viel Material gelesen habe, habe ich immer noch Schwierigkeiten, ein paar Konzepte in den Kopf zu bekommen.

Wie wird eine Quelldatei tatsächlich in Token aufgeteilt? Ich glaube, dieser Prozess heißt Lexing, und ich habe hoch und niedrig nach echten Codebeispielen gesucht, die Sinn machen, aber ich kann keine so einfachen Codebeispiele finden, die ich sehr begrüße;)

Müssen beim Parsen jemals Informationen den Baum hinauf oder hinunter übertragen werden? Der Grund, den ich frage, ist folgender:

LD BC, nn

Es muss in den folgenden Analysebaum umgewandelt werden, sobald es mit einem Token versehen ist (???)

  ___ LD ___
  |        |
 BC        nn

Wenn dieser Baum durchlaufen wird, muss er den folgenden Maschinencode erzeugen:

01 n n

Wenn die Anweisung gewesen wäre:

LD DE,nn

Dann müsste die Ausgabe sein:

11 n n

Das heißt, es wird die Frage aufgeworfen, ob der LD-Knoten basierend auf dem Operanden etwas anderes zurückgibt oder ob es der Operand ist, der etwas zurückgibt. Und wie wird das erreicht? Einfachere Codebeispiele wären hervorragend, wenn die Zeit es erlaubt.

Ich bin am meisten daran interessiert, einige der Rohprozesse hier zu lernen, anstatt fortgeschrittene vorhandene Tools zu betrachten. Denken Sie also daran, bevor Sie mich an sendenYacc oderBiegen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage