Software > Coding
Was hindert den Turboasm, eine INL für ds GFA-basic zu erstellen.
mfro:
--- Zitat von: peter hold am Mo 21.09.2015, 13:51:08 ---Ich möchte bitte eine INL anlegen, wo ich mehrere kleine Unterprogramme habe die ich mit JSR aus der Hauptroutine anspringen möchte und mit RTS zurückkehren zur Hauptroutine.
Wie kann man das bewerkstelligen ?
Danke.
Gruss
--- Ende Zitat ---
so:
--- Code: ---start: bsr eins
jsr zwei(pc)
jsr drei * das geht allerdings nicht
rts
eins: * mach was
rts
zwei: * mach was anderes
rts
drei: * mach was ganz verrücktes
rts
--- Ende Code ---
Nicht daß es keinen Spaß machen würde, aber glaubst Du nicht, daß es möglicherweise effektiver für dich wäre, ein anständiges Assembler-Buch durchzuackern anstatt uns jeden Befehl einzeln aus der Nase zu ziehen? ;)
guest3744:
Ein Buch habe ich schon von Markt und Technik.
Da steht aber so etwas für den GFA-INL nicht drin.
Dieses bsr ist also ein Ersatz für das jsr damit die GFA-INL angelegt werden kann von Turboasm?
Ich sehe immer nur einen Zusammenhang mit den Befehlen zu Turboasm mit dem Häkchen für GFA-INL.
Danke.
Gruss
laufkopf:
zB
--- Code: ---INLINE inl%,12345
'
wert1=@eins(par1,par2)
wert2=@zwei(par1,par2)
'
END
FUNCTION eins(p1,p2)
$F%
RETURN C:inl%(L:1,L:p1,L:p2)
ENDFUNC
FUNCTION zwei(p1,p2)
$F%
RETURN C:inl%(L:2,L:p1,L:p2)
ENDFUNC
--- Ende Code ---
--- Code: --- move.l 4(sp),d1 ; Funktionsnummer
cmpi.l #1,d1
beq eins
cmpi.l #2,d1
beq zwei
rts
eins:
move.l 8(sp), ; Parameter 1
move.l 12(sp), ; Parameter 2
move.l bla,d0 ; Rueckgabewert
rts
zwei:
move.l 8(sp), ; Parameter 1
move.l 12(sp), ; Parameter 2
move.l bla,d0 ; Rueckgabewert
rts
--- Ende Code ---
edit: fehler korrigiert
mfro:
--- Zitat von: peter hold am Mo 21.09.2015, 15:14:51 ---Da steht aber so etwas für den GFA-INL nicht drin.
--- Ende Zitat ---
Da steht aber bestimmt was über PC-relative Adressierung drin (darum geht's nämlich bei der inline-Sache).
Sonst schmeiß' es besser weg...
guest3744:
Hallo, danke.
Das ist ja ein anderer Aufruf mit Call, wunderbar.
Was bedeutet bitte das $F% im GFA?
Wird in d0 beim ASM-Programm immer der Rückgabewert reingepackt?
In Zeile 4 beim ASM muss bestimmt eine #2 rein?
Danke.
Gruss
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln