Software > Coding
Was hindert den Turboasm, eine INL für ds GFA-basic zu erstellen.
laufkopf:
Das musst Du wissen
guest3744:
Hallo, danke laufkopf.
Dein Programm läuft wunderbar.
Jetzt habe ich für GFA-Basic genug Varianten mit ASM , die auch überzeugend funktionieren.
Danke.
Gruss
laufkopf:
Kein Thema.
Für zwei, drei Unterfunktionen ist das ja ok. Sollten es jedoch mehr werden, bietet sich eine Sprungtabelle an.
--- Code: --- move.l 4(SP),D0
asl.w #1,D0
lea tabelle(PC),A0
movea.w 0(A0,D0.w),A1
suba.w (A1),A0
jmp (A0)
rts
eins:
rts
zwei:
rts
drei:
rts
vier:
rts
fuenf:
rts
tabelle: DC.W 0
DC.W tabelle-eins
DC.W tabelle-zwei
DC.W tabelle-drei
DC.W tabelle-vier
DC.W tabelle-fuenf
END
--- Ende Code ---
guest3744:
Habe es in GFA umgesetzt als INL:
--- Code: ---CLS
INLINE inl%,100
BLOAD "d:\inl\ctabelle.inl",inl%
par1%=1
wert1%=@eins(par1%)
PRINT wert1%
'
PAUSE 50
END
'
FUNCTION eins(p1%)
$F%
RETURN C:inl%(L:p1%)
ENDFUNC
'
--- Ende Code ---
Stürzt ab mit Bömbchen....
--- Code: --- move.l 4(SP),D0
asl.w #1,D0
lea tabelle(PC),A0
movea.w 0(A0,D0.w),A1
suba.w (A1),A0
jmp (A0)
rts
eins:
move.l #100,D0
rts
zwei:
move.l #200,D0
rts
drei:
move.l #300,D0
rts
vier:
move.l #400,D0
rts
fuenf:
move.l #500,D0
rts
tabelle: DC.W 0
DC.W tabelle-eins
DC.W tabelle-zwei
DC.W tabelle-drei
DC.W tabelle-vier
DC.W tabelle-fuenf
END
--- Ende Code ---
Ich habe immer den Wert erwartet von D0 je nach aufruf der Tabelle.
Oder mache ich da einen Fehler?
Danke.
Gruss
laufkopf:
Der Assemblerteil gehört alles zusammen übersetzt.
Ich probier das gleich aber selbst mal aus.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln