BIT $ll

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Begriffsklärung Der Titel dieses Artikels ist mehrdeutig. Bit (Begriffsklärung).


Mnemonic: BIT $ll
Opcode: $24
Operand(en): $ll
Anzahl der Bytes: 2
Befehlsgruppe: Arithmetik- und Logikbefehl
Adressierung: Zeropage
Beeinflusste Flags im Statusregister:
Negative-Flag
Overflow-Flag
Zero-Flag
Taktzyklen: 3


Der Assembler-Befehl BIT $ll macht eine bitweise UND-Verknüpfung des Akkumulators mit dem Inhalt der Zeropage-Adresse $ll und setzt die Flaggen (Zero-Flag, Negative-Flag und Overflow-Flag) entsprechend.
Das Ergebnis wird nicht wie bei dem Befehl AND $ll in den Akkumulator geschrieben.
Dieser Befehl ideal zum Abfragen einzelner Bits (siehe Beispiel 1 von BIT $hhll) und im Vergleich zu einer Kombination aus LDA $ll und AND #$nn hinsichtlich Speicherbedarf und Ausführungszeit effizienter, wenn auf das Eintreten eines Ereignisses in einer Warteschleife gewartet wird.
Eine weitere trickreiche Einsatzmöglichkeit des BIT-Befehls ist das Überspringen von Befehlen, indem ein Byte lange Befehle als Parameter versteckt werden und dabei gewährleistet ist, dass dabei der BIT-Befehl sich neutral verhält, also sonst keine Register (abgesehen vom Statusregister) verändert, wie im Beispiel 2 von BIT $hhll gezeigt wird.

Der BIT-Befehl besteht aus 2 Teilen:

  1. Zunächst werden die Bits 7 und 6 der Zeropage-Adresse $ll ins Negative-Flag und das Overflow-Flag übertragen,
  2. dann wird eine bitweise UND-Verknüpfung zwischen dem Akkumulator und dem Inhalt der Speicherzelle $ll in der Zeropage durchgeführt, wodurch nun das Zero-Flag beeinflusst wird, also gesetzt ist, wenn es das Ergebnis 0 ergab.

Es ist somit möglich, dass sich nach der Ausführung des Befehls alle drei genannten Flaggen verändert haben und sogar alle drei gesetzt sind. Im Gegensatz dazu kann beim Assemblerbefehl AND $ll das Negative-Flag und das Zero-Flag niemals gleichzeitig gesetzt sein, da ein negatives Ergebnis nicht gleichzeitig 0 sein kann.


Funktionsprinzip

Ass befehl 24.gif

Bedeutung der Buchstaben im Befehl

BIT BIT test
Teste Bits

Beispiel

Vergleiche Beispiele von BIT $hhll.

Beispielprogramme