Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Parameterübergabe Kategorie: Progr. Assembler, TaskingTools, OS (von André H. - 9.05.2004 15:54)
Als Antwort auf Parameterübergabe von Alex - 7.05.2004 15:26
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
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.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Parameterübergabe (von Alex - 10.05.2004 14:16)