JMP ($hhll)
Aus C64-Wiki
Zur Navigation springenZur Suche springen
Mnemonic: | JMP ($hhll) | |||
Opcode: | $6C | |||
Operand(en): | $ll $hh | |||
Anzahl der Bytes: | 3 | |||
Befehlsgruppe: | Sprungbefehl | |||
Adressierung: | indirekt | |||
Beeinflusste Flags im Statusregister: | ||||
keine | ||||
Taktzyklen: | 5 | |||
1 | PC | R | Lese Befehl, inkrementiere PC | |
2 | PC | R | hole Zeigeradresse Low, inkrementiere PC | |
3 | PC | R | hole Zeigeradresse High, inkrementiere PC | |
4 | Pointer | R | lese Low-Adresse in Latch | |
5 | Pointer + 1* | R | lese PCH, kopiere Latch nach PCL | |
Anmerkung: | * der PCH wird immer aus der selben Page wie PCL gelesen, ein Seitenüberlauf wird nicht berücksichtigt |
Der Assembler-Befehl JMP ($hhll) gibt das Sprungziel indirekt über einen Zeiger (oder Vektor) an.
- Die Speicherstelle an Adresse $hhll enthält das niederwertige Byte (LSB),
- die Speicherstelle an Adresse $hhll+1 enthält das höherwertige Byte (MSB)
des Sprungzieles, mit dem der Programmzähler (PC) geladen bzw. wo die Ausführung fortgesetzt wird.
Man beachte, dass dieser Befehl Seitenüberläufe ignoriert, so wird z. B. bei JMP ($20FF)
das High-Byte des Sprungziels nicht von Adresse $2100, sondern von $2000 geholt!
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
JMP | JuMP to ($hhll) |
Springe nach ($hhll) |
Vergleichbare BASIC-Anweisung
Keine vergleichbare BASIC-Befehlsfolge vorhanden.