BVS $hhll
Aus C64-Wiki
Zur Navigation springenZur Suche springen
| Mnemonic: | BVS $hhll | |||
| Opcode: | $70 | |||
| 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; addiere Operand zu PCL | |
| 4! | PC* | R | lese Opcode des nächsten Befehls; korrigiere PCH | |
| 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 BVC $hhll verzweigt zur Adresse $hhll (neuer Wert des Programmzählers PC), wenn das Ergebnis der letzten arithmetischen Operation einen Wertebereichsüberlauf (von nicht-negativen Werten zu negativen Werten und umgekehrt) hervorgerufen hat, was mit Overflow-Flag = 1 angezeigt wird.
Im Zuge eines Bit-Tests übertragen die BIT-Befehle Bit 6 des Operanden ins Overflow-Flag und bei einem Bit-Wert von 1 kann sofort eine Verzweigung ausgelöst werden.
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
| BVS | Branch on oVerflow Set |
| Verzweige, wenn Overflow-Flag = 1 |
Beispiel
Überlauf bei arithmetischen Operationen:
clc ; Übertrag vor der Addition löschen lda wert ; Wert aus dem Speicher holen adc #10 ; um 10 erhöhen bvs fehler ; falls die Addition >127 wird, haben wir ; einen "Overflow"! ; Ok, Wert im Bereich -127 bis 128, weiter geht's ... fehler ...
Bit-Abfrage:
weiterlesen
; Daten von einem Gerät lesen ...
bit $90 ; STATUS-Byte in der Zeropage
bvs abbruch ; Bit 6 im STATUS-Byte gesetzt
; = EOF (End Of File), am Ende der Datei angelangt
; weiter einlesen ...
abbruch rts
Vergleichbare BASIC-Anweisung
Keine vergleichbare BASIC-Befehlsfolge vorhanden.
