LSR $hhll
| Mnemonic: | LSR $hhll | ||
| Opcode: | $4E | ||
| Operand(en): | $ll $hh | ||
| Anzahl der Bytes: | 3 | ||
| Befehlsgruppe: | Rotations- und Schiebebefehl | ||
| Adressierung: | absolut | ||
| Beeinflusste Flags im Statusregister: | |||
| Carry-Flag | |||
| Negative-Flag | |||
| Zero-Flag | |||
| Taktzyklen: | 6 | ||
| 1 | PC | R | Lese Befehl, inkrementiere PC |
| 2 | PC | R | lese Adress-Lowbyte, inkrementiere PC |
| 3 | PC | R | lese Adress-Highbyte, inkrementiere PC |
| 4 | Adresse | R | lese von effektiver Adresse |
| 5 | Adresse | W | schreibe Wert auf effektive Adresse zurück und führe Operation auf den Wert aus |
| 6 | Adresse | W | schreibe neuen Wert auf effektive Adresse |
Der Assembler-Befehl LSR $hhll verschiebt die acht Bits der Speicherzelle $hhll 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, PEEK(1234) / 2
Beispielsweise für die Adresse 1234.
