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)