Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Alex, > > > wer kann mir einen Hinweis geben, wie man sauber die Parameterübergabe zwischen C2 > > und Assemnlerroutinen realisiert? > > Am einfachsten geht das über den Thread-Rechenstack der VM. > In C2 werden die Parameter z.B. mit Hilfe einer Inline-Funktion auf > den Stack gepusht. > In ASM können diese Werte wieder in umgekehrter Reihenfolge gepoppt werden. > Das Poppen erfolgt durch den Aufruf einer Sub-Routine in ASM. > Bei der Rückgabe eines Wertes geht das genauso, nur daß nur ein Wert zurückgeben > werden kann. > Sollen Arrays, Strings, oder eigene Datentypen zurückgegeben werde, so muß > eione Entsprechende Variable(=Array) als Parameter übergeben werden. > In ASM erhält man dann die Startadresse im RAM als Parameter. > > Wie die Parameterübergabe funktioniert, siehst Du z.Zt. am besten an Hand des > Treibers sys0001.hex (bzw. sys0001.asm) und den Modulen, die diesen Treiber nutzen. > (z.B. lcdext.c2 und stports.c2) > > MfG André H.