LSR $hhll, X

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Mnemonic: LSR $hhll,X
Opcode: $5E
Operand(en): $ll $hh
Anzahl der Bytes: 3
Befehlsgruppe: Rotations- und Schiebebefehl
Adressierung: absolut X-indiziert
Beeinflusste Flags im Statusregister:
Carry-Flag
Negative-Flag
Zero-Flag
Taktzyklen: 7


Der Assembler-Befehl LSR $hhll,X verschiebt die acht Bits der Speicherzelle ($hhll+X) um eine Bit-Position nach rechts (von den höherwertigen zu den niederwertigen Bits). Das höchstwertige Bit wird 0 und das herausfallende Bit wird im Carry-Flag aufgefangen.
Damit teilt dieser Befehl den Inhalt der Speicherzelle durch 2. Der Divisionsrest wird im Carry-Flag abgebildet.

Das Negative-Flag wird dabei immer zurückgesetzt, da das Ergebnis stets einem positiven Wert entspricht.
Die zu dieser logischen Operation korrespondierende arithmetische Operation (ein hypothetischer ASR-Befehl) ist nicht implementiert und muss entsprechend ausprogrammiert werden (siehe ASL-Beispiel).

Funktionsprinzip

Ass befehl 5e.gif

Bedeutung der Buchstaben im Befehl

LSR Logical Shift Right
Logisches Rechts-Schieben

Beispiel

Siehe auch Beispiele bei LSR $ll.

Vergleichbare BASIC-Anweisung

Für BASIC V2:

10 POKE (1234+X), PEEK(1234+X) / 2

Beispielsweise für die Adresse 1234 + X (als X-Register). Ein Überlauf der 16-Bit-Adresse wird hier nicht berücksichtigt.

Beispielprogramme