3a_asm: FIX: parser fail bei labels aufloesen
[calu.git] / 3a_asm / notes
1 BUGS:
2 - parsers2: bei instr branches addresse durch 4 rechnen (ldi vorm brr -> RAGE)
3
4 WUENSCHE:
5 - eval: bitoperatoren
6
7
8 ===============================================================================
9 Beschreibung:
10
11 Der Parser braucht zwei Durchlaeufe. Der erste Durchlauf loest z.b. Labels auf
12 und kuemmert sich darum welche Daten nach .data und welche nach .text gehoeren.
13 Im zweiten Durchlauf werden die eigentlichen Instructions geparst und den
14 entsprechenden Bytecode umgewandelt. Da zu diesem Zeitpunkt Labels und Defines
15 schon in einer Datenstruktur vorhanden sind, sollte bezueglich
16 Adressenaufloesung nicht mehr viel schief gehen.
17
18
19 (1) Aufgaben der first Stage:
20
21 - .data <- done (wenn man nett ist, springt man nicht lustig zwischen diesen
22 - .text <- done (sections hin und her... es *sollte* zwar gehen, aber [...] :p)
23 - .include <- done (thx @ gcc)
24 - .org <- done
25 - .fill aufloesen <- TODO: atm nur einmalig 32bit moeglich
26 - .define tabelle <- done
27
28 - @hi und @lo behandeln? <- done
29
30
31 (2) Values die noch als String vorhanden ist, werden als instruction geparst.
32         -> done
33
34
35 einschraenkungen atm:
36 - gleicher Namensraum fuer labels in .text und .data! wenn einer ein Label aus
37   .data laedt und dann aber eigentlich auf .text zugreift ist er selber schuld :/