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


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

Ass befehl 70.gif

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.

Beispielprogramme