BCS $hhll
Aus C64-Wiki
(Weitergeleitet von BCS)
Mnemonic: | BCS $hhll | |||
Opcode: | $B0 | |||
Operand(en): | $nn | |||
Anzahl der Bytes: | 2 | |||
Befehlsgruppe: | Sprungbefehl | |||
Adressierung: | relativ | |||
Beeinflusste Flags im Statusregister: | ||||
keine | ||||
Taktzyklen: | 2 | |||
1 Extratakt bei Sprung | ||||
1 Extratakt bei Überschreitung einer Page-Grenze | ||||
1 | PC | R | Lese Befehl, inkrementiere PC | |
2 | PC | R | hole Operand, inkrementiere PC | |
3 | PC | R | lese Opcode des nächsten Befehls; wird Sprung ausgeführt, addiere Operand zu PCL | |
4+ | PC | R | lese Opcode des nächsten Befehls; korrigiere PCH; hat er sich nicht geändert, inkrementiere PC | |
5! | PC | R | lese Opcode des nächsten Befehls, inkrementiere PC | |
Anmerkung: | Der Opcode-Ladezyklus des nächsten Befehls ist nur zu Demonstrationszwecken angegeben. Zur Berechnung der Zyklenzahl nicht verwenden. | |||
Anmerkung: | * Das Highbyte des Programmzählers (PCH) kann zu diesem Zeitpunkt ungültig sein, z.B. um 256 Bytes zu hoch oder niedrig. | |||
Anmerkung: | + Dieser Zyklus wird beim Sprung ausgeführt | |||
Anmerkung: | ! Führt der Sprung zu einer anderen Seite, wird dieser Zyklus ausgeführt |
Der Assembler-Befehl BCS $hhll verzweigt zur Adresse $hhll (als neuer Wert des Programmzählers PC), wenn das Carry-Flag = 1 ist. Im Falle eines Vergleiches mittels CMP-Befehle (auch Varianten CPX oder CPY und bei Subtraktion) entspricht dies der Abfrage auf >= und der Befehl ist gelegentlich auch als Mnemonic BGE (Branch on Greater or Equal) verfügbar.
Es ist bei der relativen Adressierung darauf zu achten, dass sich das Sprungziel innerhalb des gültigen Adressbereiches befindet!
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
BCS | Branch on Carry Set |
Verzweige wenn Carry-Flag = 1 |
Beispiel
Vergleiche auch Beispiel bei BNE.
Vergleichbare BASIC-Anweisung
Für BASIC V2:
10 IF A >= B GOTO 50 : REM Wenn A >= B, springe nach 50