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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > 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 > > Hallo Robert, > > ich habe eben Dir eine korrigierte asm Datei als email geschickt. Als Übergabeparameter > steht an Z+4, Z+5 ein 16-Bit Pointer auf das float Array. Man lädt nun Z+4,Z+5 in das X-Register > und kann darüber dann auf das Array zugreifen. > > LDD R26, Z+4 ; load lo byte from arr[] pointer into X > LDD R27, Z+5 ; load hi byte from arr[] pointer into X > > ST X+, R22 ; store first byte in first byte of array with X increment > ST X+, R23 > ST X+, R24 > ST X+, R25 > > > Gruss Peter