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
 Forum
 interessante Links
 Bücher-Shop
 SiteMap
Sie sind hier: SELF8051 || Befehlsreferenz || alle Befehle || ACALL

ACALL     <addr11>


Funktion


Unbedingter Aufruf einer Subroutine innerhalb 2kBytes im Programmspeicher.

 

Beschreibung


ACALL ruft ohne Bedingung eine Subroutine auf, die sich an der angegebenen Adresse addr11 befindet.

Der Befehl inkrementiert (erhöht) den Programmzähler zweimal, so dass die Adresse des nächsten Befehls erreicht wird. Danach bringt er das 16bit-Ergebnis in den Stack (das niederwertige Byte zuerst) und inkrementiert den Stack pointer (SP) zweimal. Die Zieladresse ergibt sich aus einer Verknüpfung der fünf unveränderten höchstwertigen Bits des inkrementierten Programmzählers mit den Bits 7 bis 5 des Operationscodes und dem zweiten Befehlsbyte. Die aufgerufene Subroutine muss daher im selben 2kByte-Block des Programmspeichers starten wie das erste Byte des ACALL folgenden Befehls.

Kennzeichnungsbits werden nicht beeinflußt.

 

Beispiel


Zu Beginn enthalte der Stack Pointer (SP) den Wert 07H. Die Marke SUBRTN befinde sich am Programmspeicherplatz 0345H. Nach Ausführung des Befehls

ACALL     SUBRTN

am Speicherplatz 0123H enthält der Stack Pointer 09H; die internen RAM-Speicherplätze 08H und 09H beinhalten 25H (23H + 02H) bzw. 01H (Rückkehradresse) und der Programmzähler enthält 0345H.

 

Bytes:      2
Zyklen:    2

 

Befehlscodierung


 a10  a9  a8  1   0   0   0   1 
    
 a7  a6  a5  a4  a3  a2  a1  a0

 


Fehler auf dieser Seite melden



 

Seite drucken

Send a Friend

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


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 1