Soweit hab ich das erstmal verstanden mit dem Bücherregal, danke.
Hier mal mein Code:
Bloß wie überprüfe ich, ob er auch wirklich den String "Hallo!" in tmp kopiert? Im Debug-Modus seh ich in r16 auch keine Strings..hmm..Code:;Programm ;CDurTonleiter rauf und runter spielen .include "m8def.inc" .def tmp = r16 ;Mein Universallregister .org 0x000 rjmp reset ;Interruptvektor "reset:" reset: ;Stack einrichten ldi tmp, HIGH(RAMEND) ;HIGH-Byte der obersten RAM-Adresse out SPH, tmp ldi tmp, LOW(RAMEND) ;Low-Byte der obersten RAM-Adresse out SPL, tmp ldi ZH, HIGH(daten1 * 2) ldi ZL, LOW(daten1 * 2) sei ;Interrupts zulassen loop: lpm ;nächstes Byte des String nach r0 einlesen mov tmp, r0 ;Inhalt von R0 nach "tmp" kopieren adiw ZL,1 ;Adresse des Z-Pointers um 1 erhöhen rjmp loop ;immer wieder zu "loop:" springen daten1: .db "Hallo!" ;immer eine gerade Anzahl an Bytes
@Tekeli: Danke für den Link, bin grad nicht drauf gekommen, da nachzuschauen *g* Habs dadurch auch erstmal besser verstanden, aber das mit der 2x hab ich immer noch nicht verstanden, also keine Sorge. Im Tut steht ja auch "Über die Multiplikation der Adresse mit 2 sollte man sich erst mal keine Gedanken machen: "das ist einfach so"™" Da hat der Florian wohl den Satz geklautoder er weiß es selber nicht *duck* *gg*
@Tekeli: Hast du dir den Wert "0011 1100 0101 0011" jetzt nur ausgedacht, oder muss ich verstehen, was dahinter steckt?







Zitieren

Lesezeichen