ATMega 162 Frage zu Kommando "ROR"

OP #1277157
Hallo,

ich habe derzeit ein Problem mit einem Programm, welches Bits 
verschwinden laesst.
Ich habe da u.a. ein paar Assembler-Zeilen mit dem Kommando "ROR" im 
Verdacht.

Damit sollen die Zustaende von Bit 0 und Bit 1 an die Stelle Bit6 und 
Bit7 geschoben werden.

Um die Laufzeit so kurz wie moeglich zu halten habe ich mich fuer zwei 
mal ROR r entschieden in der Annahme, dass die Bits, die rechts "ins 
Leere fallen" von links wieder eingeschoben werden.
Bevor ich noch andere Stellen abklopfe, ist diese Annahme falsch und 
muss ich stattdessen mit entsprechend vielen ROL-Kommandos arbeiten?

Vielen Dank im Voraus,

Thomas
OP #1277188
Michael U. schrieb:
> Hallo,
>
> die fallen erstmal ins Carry, Du muß also eimal mehr schieben...
>
> Gruß aus Berlin
> Michael

Mahlzeit,

Ihr seid ja verdammt schnell! DANKE!

Ich war der Meinung, dass das Carry nur bei RRC und RLC mit dabei ist?
#1277196
> Daher musst du dreimal ROR'en, um Bit 1 nach Bit 7 zu bekommen.
Dann hast du aber ein zusätzliches Bit (das vor dem ersten ROR'en im 
Carry stand) in deinen Daten.
Geht es eigentlich mit nur einem Register?
1
    clr B    ; ein extra Register
2
    lsr A    ; deine Daten
3
    ror B
4
    lsr A
5
    ror B
6
    or A, B

hth, Jörg
OP #1277217
Stefan Ernst schrieb:
> Thomas Wyschkony schrieb:
>
>> Ich war der Meinung, dass das Carry nur bei RRC und RLC mit dabei ist?
>
> Was sollen denn das für Befehle sein?
> Zum AVR-Befehlssatz gehören die jedenfalls nicht.


Hi,

tja... ich habe die ganze Programmiererei vor Jahren auf dem 8085 
gelernt und bin da noch den einen oder anderen Befehl gewoehnt. Vieles 
ist ja auch aehnlich.

Was das fuer Befehle sind:
***
Rotate accumulator left
RLC none
Each binary bit of the accumulator is rotated left by one
position. Bit D7 is placed in the position of D0 as well as in
the Carry flag. CY is modified according to bit D7. S, Z, P,
AC are not affected.
Example: RLC
***
(analog gilt das auch fuer RRC)

>Dann hast du aber ein zusätzliches Bit (das vor dem ersten ROR'en im
Carry stand) in deinen Daten.

Das ist kein Problem, nach dem RORen wird der Schmodder mit ANDI 
0b11000000 maskiert und mit einem anderen Register verwurstet.

Auf jeden Fall habt Ihr mir sehr geholfen, einem saubloeden Fehler auf 
die Schliche zu kommen!
Vielen Dank dafuer :o)
#1277222
Thomas Wyschkony schrieb:

> Was das fuer Befehle sind:
> ***
> Rotate accumulator left
> RLC none
> Each binary bit of the accumulator is rotated left by one
> position. Bit D7 is placed in the position of D0 as well as in
> the Carry flag. CY is modified according to bit D7. S, Z, P,
> AC are not affected.
> Example: RLC
> ***
> (analog gilt das auch fuer RRC)

LOL

Die Doku zum 8085 hast du.
Warum benutzt dann nicht ganz einfach auch die Doku, die dir Atmel zu 
ihren Produkten mitgibt?

Ich geh mal davon aus, dass du AVR-Studio benutzt:
Stell den Cursor im Textfenster auf den Befehl den du nicht kennst (oder 
über dessen Details du unsicher bist) und drück F1.
OP #1277241
Hi,

>Stell den Cursor im Textfenster auf den Befehl den du nicht kennst (oder
über dessen Details du unsicher bist) und drück F1.

Geil! Das wird schnellstmoeglichst ausprobiert, auch hier tausend Dank!

>Die Doku zum 8085 hast du.

Zumindest vieles davon noch im Hinterkopf ;o)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.