Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Parameter schreiben? Kategorie: Programmierung Assembler (von Robert - 30.06.2010 14:11)
Ich nutze:
C-Control Pro Mega128
Hallo,

ich versuche gerade, mir mit Assembler eine Funktion zu schreiben, die mir aus einem Float alle vier
Bytes in ein Byte-Array schreibt. Folgender Code zum Laden scheint zu funktionieren:
MOVW R30, R10       ; lade ram top
LDD R22, Z+0            ; lade erstes byte in R22
LDD R23, Z+1
LDD R24, Z+2
LDD R25, Z+3            ; lade letztes byte in R25
MOVW R30, R6         ; 4 bytes auf parameter stack
ADIW R30, 4
MOVW R6, R30
ST Z+, R24                ; schreibe 3. byte + 4.  
ST Z, R25
L├Ądt die vier Bytes in die Register und schreibt die beiden oberen Bytes als R├╝ckgabewert. In dem
Integer ist dann alles korrekt. Leider sind Arrays als R├╝ckgabeparameter einer Funktion nicht erlaubt.
Deshalb wollte ich ein Array (in der Reihenfolge vor dem Float) an die Funktion ├╝bergeben und dort
mittels
STD Z+4, R22
STD Z+5, R23
STD Z+6, R24
STD Z+7, R25
reinschreiben. Das funktioniert nicht. Aber warum? Ist doch in der Reihenfolge richtig?

Vielen Dank im voraus.

MfG, Robert


    Antwort schreiben


Antworten:

Re: Parameter schreiben? (von PeterS - 8.07.2010 16:10)
Re: Parameter schreiben? (von PeterS - 30.06.2010 20:46)
    Re: Parameter schreiben? (von Robert - 1.07.2010 8:35)
        Re: Parameter schreiben? (von Robert - 5.07.2010 13:01)