Software > Coding

Was hindert den Turboasm, eine INL für ds GFA-basic zu erstellen.

<< < (5/7) > >>

guest3744:
Wo liegt der Fehler, ich finde ihn nicht?

Meine Frage auch, wie wird der Text erkannt von der Sprungvariable? Ich sehe das nicht raus.

Gruss

laufkopf:
So funktioniert es

--- Zitat ---         move.l   4(SP),D0
         asl.w   #2,D0
         lea      tabelle(PC),A0
         move.l   a0,a1
         add      d0,a1
         sub.l  (A1),A0
         jmp     (A0)
         rts

eins:
         move.l   #100,d0
         rts
zwei:
         rts
drei:
         rts
vier:
         rts
fuenf:
         rts

tabelle:   DC.L 1
         DC.L tabelle-eins
         DC.L tabelle-zwei
         DC.L tabelle-drei
         DC.L tabelle-vier
         DC.L tabelle-fuenf
         
--- Ende Zitat ---

laufkopf:

--- Zitat von: peter hold am Mo 21.09.2015, 19:56:05 ---Ich habe immer alles übersetzt.
Einmal nur die Zahlen unten rein und dann einmal den Text unten rein.

Meine Frage auch, wie wird der Text erkannt von der Sprungvariable? Ich sehe das nicht raus.

Gruss

--- Ende Zitat ---


--- Code: ---move.l 4(SP),D0
--- Ende Code ---
gewünschte Funktion nach D0 holen

--- Code: ---asl.w #2,D0
--- Ende Code ---
mit 4 multiplizieren

--- Code: ---lea tabelle(PC),A0
--- Ende Code ---
Adresse der Tabelle nach A0

--- Code: ---move.l a0,a1
--- Ende Code ---
und kopie nach A1

--- Code: ---add D0,A1
--- Ende Code ---
Addiere D0 zu A1 und schreibe das Ergebnis nach A1. I(n A1 steht die Adresse der Tabelle. in D0 die gewünschte Funktion x 4 um den Offset in der Tabelle, welche Longs beinhaltet auszugleichen)

--- Code: ---sub.l  (A1),A0
--- Ende Code ---
Subtrahiere den Wert auf den die Adresse in A1 zeigt mit A0 und schreibe das Ergebnis nach A0

--- Code: ---jmp     (A0)
--- Ende Code ---
Springe zu der Funktion dessen Adresse in A0 steht


--- Code: ---tabelle: DC.L 1
DC.L tabelle-eins
DC.L tabelle-zwei
DC.L tabelle-drei
DC.L tabelle-vier
DC.L tabelle-fuenf
--- Ende Code ---
Die Tabelle beinhaltet nach dem Assemblieren die Differenzen zwischen Anfangsadresse der Tabelle und den Funktionen.

guest3744:
Es funktioniert jetzt mit deinem neuen Programm...., es war mein fehler.
Deine Antwort #21 am: Heute um 20:43:37


Gruss

laufkopf:
Im Anhang meine Version, welche funktioniert zum Vergleich

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln