Software > Coding

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

<< < (2/7) > >>

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