header.self8051
Suche   ||   HOME   ||   Eigenschaften   ||   Befehlsreferenz   ||   Derivate   ||  
 Eigenschaften
 Befehlsreferenz
     Einführung
    > alle Befehle
        ACALL
        ADD
        ADDC
        AJMP
       > ANL
        ANL  C
        CJNE
        CLR
        CLR  A
        CPL
        CPL  A
        DA  A
        DEC
        DIV  AB
        DJNZ
        INC
        INC  DPTR
        JB
        JBC
        JC
        JMP
        JNB
        JNC
        JNZ
        JZ
        LCALL
        LJMP
        MOV
        MOV  C
        MOV  DPTR
        MOVC
        MOVX
        MUL  AB
        NOP
        ORL
        ORL  C
        POP
        PUSH
        RET
        RETI
        RL  A
        RLC  A
        RR  A
        RRC  A
        SETB
        SJMP
        SUBB
        SWAP  A
        XCH
        XCHD
        XRL
 Derivate
 interessante Links
Sie sind hier: SELF8051 || Befehlsreferenz || alle Befehle || ANL

ANL     <Zielbyte>,<Quellenbyte>


Funktion


Logische UND-Verknüpfung zweier Byte-Variablen.

 

ANL     A,Rr               Rr = Inhalt eines der Register R0 bis R7
ANL     A,direct   direct = Adresse im unteren RAM oder SFR
ANL     A,@Ri   @Ri = 8 Bit Adresse in R0 oder R1
ANL     A,#data   #data = unmittelbare 8 Bit Konstante
ANL     direct,A    
ANL     direct,#data    

 

Beschreibung


Durch ANL erfolgt eine bitweise logische UND-Verknüpfung zwischen dem angegebenen <Zielbyte> und dem <Quellenbyte>. Die anschließende Speicherung des Ergebnisses erfolgt im <Zielbyte>.

Kennzeichnungsbits werden nicht beeinflußt.

Die beiden Operanden erlauben sechs Kombinationen von Adressierungsatren. Wenn das Ziel der Akkumulator ist, können für die Quelle die Adressierungsarten Register, direkt, registerindirekt oder unmittelbar verwendet werden. Ist das Ziel durch direkte Adressierung bestimmt, so kann es sich bei der Quelle um den Akkumulator oder um unmittelbare Daten handeln.

Zur Beachtung:
Dient dieser Befehl zur Änderung des Wertes eines Ausgangsports, so wird der zu verarbeitende Portwert vom Ausgangs-Zwischenspeicher und nicht von den Eingangsanschlüssen direkt gelesen.

 

Beispiel


Der Akkumulator (A) enthalte C3H (11000011B) und Register R0   AAH (10101010B). Der Befehl

ANL     A,R0

ergibt 82H (10000010B) im Akkumulator.

Wird das Zielbyte direkt adressiert, so können mit diesem Befehl Bitkombinationen in einem beliebigen RAM-Speicherplatz oder Hardware-Register (SFR) gelöscht werden.
Die zu löschende Bitanordnung wird durch eine Maske festgelegt, die entweder eine im Befehl enthaltene Konstante oder ein Wert sein kann, der während der Ausführungszeit im Akkumulator (A) berechnet wird. Der Befehl

ANL     P1,#01110011B

löscht die Bits 7, 3 und 2 vom Ausgangs-Port 1.

 

 

ANL     A,Rr

UND-Verknüpfung des Registers Rr  und dem Akkumulator (A).
Rr = R0 .. R7 der gewählten Registerbank

Bytes:      1
Zyklen:    1

Befehlscodierung

 0   1   0   1   1   r   r   r 

 

 

ANL     A,direct

UND-Verknüpfung der Adresse (direct) und dem Akkumulator (A).
direct = Adresse im unteren RAM oder SFR

Bytes:      2
Zyklen:    1

Befehlscodierung

 0   1   0   1   0   1   0   1 
    
  direkte Adresse  

 

 

ANL     A,@Ri

UND-Verknüpfung des Inhaltes der Adresse, welche durch den Wert in Ri definiert ist, mit Akkumulator (A).
@Ri = 8 Bit Adresse in R0 oder R1

Bytes:      1
Zyklen:    1

Befehlscodierung

 0   1   0   1   0   1   1   i 

 

 

ANL     A,#data

UND-Verknüpfung des Wertes  #data und dem Akkumulator (A).
#data = unmittelbare 8 Bit Konstante

Bytes:      2
Zyklen:    1

Befehlscodierung

 0   1   0   1   0   1   0   0 
    
  unmittelbare Daten  

 

 

ANL     direct,A

UND-Verknüpfung der Adresse (direct) und dem Akkumulator (A). Das Ergebnis wird in die Adresse (direct) geschrieben.
direct = Adresse im unteren RAM oder SFR

Bytes:      2
Zyklen:    1

Befehlscodierung

 0   1   0   1   0   0   1   0 
    
  direkte Adresse  

 

 

ANL     direct,#data

UND-Verknüpfung der Adresse (direct) und dem Wert  #data. Das Ergebnis wird in die Adresse (direct) geschrieben.
direct = Adresse im unteren RAM oder SFR
#data = unmittelbare 8 Bit Konstante

Bytes:      3
Zyklen:    1

Befehlscodierung

 0   1   0   1   0   0   1   1 
    
  direkte Adresse  
   
  unmittelbare Daten 


Fehler auf dieser Seite melden



 

Seite drucken

Send a Friend

 
 zum Seitenanfang   © Autor Dipl. Ing. Sven Pohl || Impressum || Datenschutz


Tipp: rechtssichere Patientenverfügung einfach online erstellen für nur 14,90 €

  

 

Wertschätzen Sie den Aufwand und den Inhalt mit einer kleinen Spende. Danke.

Sie bestimmen die Höhe, jeder noch so kleine Betrag hilft.

 

   
HASM - Skyscrapper 2