Seite 1 von 1
BIT Befehl
Verfasst: 16.10.2024 23:42
von Dr. Irata
der BIT Befehl ist irgendwie mystisch… wozu genau braucht man den eigentlich? Also welche zwingend praktischen Anwendung gibt es, wo man BIT einsetzen muss??
Re: BIT Befehl
Verfasst: 17.10.2024 00:36
von HiassofT
BIT ist sehr praktisch wenn man nur checken möchte ob bit 7 oder 6 einen gewissen Wert haben oder ob das AND Ergebnis mit dem Wert im Akkumulator 0 ist oder nicht - ohne den Wert im Akkumulator zu ändern.
Es ist quasi ein AND Befehl mit Zusatzfunktion (N und V werden auf Bit 7/6 des operands gesetzt) ohne den Nachteil dass der Akkumulator dadurch verändert wird.
Ich hab den Befehl oft verwendet um zB bit 7/6 eines Hardware-Registers zu checken.
Auch sehr praktisch: BIT ZP-Adresse bzw BIT 16bit-Adresse kann man verwenden um fast ohne Nebenwirkungen (bis auf die Flags) 1 oder 2 bytes Code zu überspringen ohne ein BEQ/BNE/JMP zu brauchen (spart Speicherplatz).
zB:
Code: Alles auswählen
... irgendeine Routine die bei fehler JMP/BEQ/BNE ERROR macht
LDA #0
.BYTE $2C
ERROR:
LDA #1
RTS
Wenn die Routine normal durchläuft macht sie "LDA #0", "BIT $01A9", "RTS" - bei einem Fehler aber "LDA #1", "RTS" - somit kriegt man einfach konsistente Fehlercodes als Returnwert in A.
Das kann man natürlich auch weiter kaskadieren, siehe zB meinen Highspeed SIO code
https://github.com/HiassofT/highspeed-s ... rc#L80-L93
so long,
Hias