-
-
Hallo dort,
das Prellen ist keine Erklärung für das Verschwinden der "1". Und dass "rol Rn" gleich "addc Rn, Rn" ist, mag zwar sein, bringt aber auch keine Lösung.
Normalerweise sollte wiederholtes Ausführen der Rotationsbefehle niemals dazu führen, dass die "1" verschwindet. Sie muss sich immer entweder im Register oder im Carry-Flag befinden. Und da fängt das Problem an: wenn eine Operation auf ein anderes Register - in diesem Fall z.B. cpi r16, * - das Carry-Flag verändert, also löscht, dann war's das mit der Rotation der "1". Ich hab jetzt keine Lust, den Code zu verstehen, aber irgendwo passiert es. Bereinige den Code entsprechend, also vermeide das Löschen des Carry-Flags. Wenn das nicht geht, speichere das Status-Register (SREG) an einem sicheren Platz
und hole es vor der Rotation zurück.
Gruß, Achim.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen