Bits verschieben

Gast #161042
Lesenswert?
• ▲
▼
Also ich habe einen Wert aus dem Speicher, den ich seriell ausgeben
möchte.
Der Wert sei jetzt einmal
01010101
Das dumme ist aber, dass ich ihn über zwei register verteilt ausgeben
muss. Die Einsen markieren den durch das Bit belegten Platz.
00011111 11100000
Reg. 1   Reg. 2
Muss ich das nun so machen, dass ich alles in Register eins speichere:
11111111 00000000
das erste Bit aus Register 1 auslese und als letztes Bit in Register 2
ausgebe, indem ich den Carry auslese und das dann widerhole?
Gast #161043
Lesenswert?
• ▲
▼
> dass ich ihn über zwei register verteilt ausgeben muss

Hä? Wer zwingt dich dazu?
Formuliere am besten dein Frage nochmal verständlich, dann benötigst du
vermutlich nicht einmal mehr eine Antwort, weil ohne Durcheinander die
Lösung meist nahe liegt.

jörn
Gast #161045
Lesenswert?
• ▲
▼
Damit lade/schreibe ich das in den Frag T. Was ist eigentlich T?
Temporary?

@Joern:
Es ist so, dass ich ein 16Bit Schiftregister habe, welches an ein
Display angeschlossen ist. Um die Bilddaten zu laden muss ich diese
erst in ein Register laden. Die Pins vom Display liegen aber in der
Mitte des Schiftregisters, welches durch zwei Register repräsentiert
ist, also muss ich das verschieben.

HanneS Tipp hat das Problem um mehr als 50% vereinfacht.... Ne, ich
glaube es ist sogar noch mehr.

Danke für die schnelle Hilfe. Hätte ich das anders gemacht mit SBR und
CBR, dann wäre diese Aktion ziemlich fett geworden...
Gast #161047
Lesenswert?
• ▲
▼
Also bei lsr wird das rauslaufende Bit in den Carry geschoben und bei
ror wird das Carry in die eine Seite und das überflüssige Bit wieder in
den Carry geschoben?
Mh das wäre noch einfacher und ich wosste gar nicht, dass das so
einfach geht.

Danke!
Jetzt muss ich mir nurnoch irgendwie die Werte für die ersten 3 Bits
des Registers 1 speichern... Aber die sind eigentlich weitgehend
konstant...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren