-
-
Erfahrener Benutzer
Roboter-Spezialist
Hab ich doch schon alles gemacht.
ldi reg1, 0b00000000
ldi reg2, 0b11111111
cp reg2, reg1
Dann hat sich im SREG was geändert, schau ich hier nach: http://www.avr-asm-tutorial.net/avr_...tail.html#SREG
S und N sind auch 1. Was sagt mir das?
Dass das Vorzeichen negativ ist und das Ergebnis dann logischerweise auch negtativ. Was schließe ich daraus? das der Befehl cp reg1 - reg2 rechnet. Aber das ist ja nicht so, denn bei deinem Bild, was du hier eingefügt hast, steht:
cp Rd, Rr Compare Rd - Rr
Müsste dann bei "cp reg2, reg1" wohl reg2 - reg1 sein. Aber da ist das Ergebnis ja nicht negativ, sonder = reg2.
Bei cpc kommt bei den Werte oben dasselbe raus, soweit so gut, doch bei folgenden Werten:
ldi reg1, 0b11111111
ldi reg2, 0b11111111
kommt bei cp reg2, reg1
Z von SREG = 1, also Ergebnis ist 0, also die Werte beider Register sind
gleich, logisch. Aber bei "cpc reg2, reg1" kommt auf einmal nichts raus. Also alle Bits von SREG sind 0. Somit heißt es unter anderem auch, dass die Werte der Register reg1 und reg2 ungleich sind, sind sie aber doch nicht.
Ich hoffe, du weißt nun, wo mein Problem liegt
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen