X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=3a_asm%2Fnotes;h=07dfe0e23cc580b2f112d2bd57618c1cc7a57680;hb=c45536d352d3a45f6bbc7627c8bd5d0163ba054e;hp=28ba5669e1ed953105b8c04ca9333cdc27abde88;hpb=d447663f51962df7a27fc45cda835235343dcdc3;p=calu.git diff --git a/3a_asm/notes b/3a_asm/notes index 28ba566..07dfe0e 100644 --- a/3a_asm/notes +++ b/3a_asm/notes @@ -1,3 +1,13 @@ +BUGS: +- parsers2/eval: aufloesen von zwei labels x und y funktioniert nicht, wenn x ein + echter prefix von y ist (longest input match anyone?) +- parsers2: bei instr branches addresse durch 4 rechnen (ldi vorm brr -> RAGE) + +WUENSCHE: +- eval: bitoperatoren + + +=============================================================================== Beschreibung: Der Parser braucht zwei Durchlaeufe. Der erste Durchlauf loest z.b. Labels auf @@ -12,20 +22,18 @@ Adressenaufloesung nicht mehr viel schief gehen. - .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. +- .include <- done (thx @ gcc) - .org <- done - .fill aufloesen <- TODO: atm nur einmalig 32bit moeglich -- .define tabelle <- TODO +- .define tabelle <- done -- @hi und @lo behandeln? <- TODO: doch eher second stage +- @hi und @lo behandeln? <- done (2) Values die noch als String vorhanden ist, werden als instruction geparst. - (vgl. 3. Spalte der 'itp;...' Ausgaben). second stage = BIG TODO + -> 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 :/ -- viele viele mehr *testbench schreiben muss*