ASL $hhll, X
Mnemonic: | ASL $hhll, X | |||
Opcode: | $1E | |||
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 | |||
1 | PC | R | Lese Befehl, inkrementiere PC | |
2 | PC | R | lese Adress-Lowbyte, inkrementiere PC | |
3 | PC | R | hole Highbyte der Adresse, addiere Indexregister X zum Adress-Lowbyte, inkrementiere PC | |
4 | Adresse + X | R | lese von effektiver Adresse, korrigiere Highbyte der effektiven Adresse | |
5 | Adresse + X | R* | lese erneut von effektiver Adresse | |
6 | Adresse + X | W | schreibe Wert auf effektive Adresse zurück und führe Operation auf den Wert aus | |
7 | Adresse + X | W | schreibe neuen Wert auf effektive Adresse | |
Anmerkung: | * das Highbyte der effektiven Adresse könnte zu diesem Zeitpunkt ungültig sein |
Der Assembler-Befehl ASL $hhll,X verschiebt die acht Bits des Inhalts der Speicherzelle ($hhll+X) um eine Bit-Position nach links (von den niederwertigen zu den höherwertigen Bits). Das niedrigstwertige Bit wird 0 und das herausfallende Bit 7 wird im Carry-Flag aufgefangen.
Damit multipliziert dieser Befehl den adressierten Wert mit 2. Der Übertrag wird im Carry-Flag abgebildet.
Die zu dieser nach linksgehenden Operation korrespondierende rechtsgehende Operation (ein hypothetischer ASR-Befehl) ist nicht implementiert und muss entsprechend ausprogrammiert werden (siehe Beispiel bei ASL $ll,X).
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
ASL | Arithmetic Shift Left |
Logisches Links-Schieben |
Beispiel
Siehe auch Beispiel bei ASL $ll.
Vergleichbare BASIC-Anweisung
Für BASIC V2:
10 POKE 1234+X, PEEK(1234+X) * 2 AND 255
Beispielsweise für die Adresse 1234 + X (als X-Register). Der Inhalt der Speicherstelle beschränkt sich dabei auf Werte im Bereich von 0 bis 255, was mit Hilfe des AND-Operators sichergestellt wird. Ein Überlauf der 16-Bit-Adresse wird hier nicht berücksichtigt.