LSR $hhll, X
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
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.