Parameter schreiben? Kategorie: Programmierung Assembler (von Robert - 30.06.2010 14:11) | ||
| ||
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) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum