sim: labels and comments are now shown
[calu.git] / 3a_asm / notes
index 595fe05316aa56f3694c5e914926eaf5c6cadc68..be782584a2aa71f2ae6ddb513f749f8fd1bec0e8 100644 (file)
@@ -1,17 +1,34 @@
-zwei durchlaeufe:
+Beschreibung:
 
-(1) zeilen in das programmer format umwandeln, d.h.
-bis auf value werden eigentlich schon alle saplten aufgeloest. gleichzeitig wird
-eine tabelle mit labels und deren adresse aufgebaut (zwei tabellen fuer
-instr und data mem noetig)
+Der Parser braucht zwei Durchlaeufe. Der erste Durchlauf loest z.b. Labels auf
+und kuemmert sich darum welche Daten nach .data und welche nach .text gehoeren.
+Im zweiten Durchlauf werden die eigentlichen Instructions geparst und den
+entsprechenden Bytecode umgewandelt. Da zu diesem Zeitpunkt Labels und Defines
+schon in einer Datenstruktur vorhanden sind, sollte bezueglich
+Adressenaufloesung nicht mehr viel schief gehen.
 
-ausserdem: 
-- auf .data und .text achten
-- .include
-- .org
-- .fill aufloesen
-- .define tabelle
 
-@hi und @lo behandeln?
+(1) Aufgaben der first Stage:
 
-(2) value das noch als string vorhanden ist, wird als instruction geparst.
+- .data <- done (wenn man nett ist, springt man nicht lustig zwischen diesen
+- .text <- done (sections hin und her... es *sollte* zwar gehen, aber [...] :p)
+- .include <- TODO: zu umstaendlich? :/ Mal schaun ob mir eine einfache Loesung
+  einfaellt. Eventuell mit gcc drueberfahren
+- .org <- done
+- .fill aufloesen <- TODO: atm nur einmalig 32bit moeglich
+- .define tabelle <- done
+
+- @hi und @lo behandeln? <- done
+
+
+(2) Values die noch als String vorhanden ist, werden als instruction geparst.
+       -> done
+
+
+einschraenkungen atm:
+- gleicher Namensraum fuer labels in .text und .data! wenn einer ein Label aus
+  .data laedt und dann aber eigentlich auf .text zugreift ist er selber schuld :/
+- Expr geht zwar, aber nicht geklammert
+- In manchen situationen kanns den parser noch an den einen oder anderen Space
+  oder Tab herhauen, also lieb sein!
+- viele viele mehr *testbench schreiben muss*