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 || LCALL

LCALL     <addr16>


Funktion


Unbedingter Aufruf einer Subroutine innerhalb des 64kByte-Programmspeichers.

 

Beschreibung


LCALL ruft ohne Bedingung eine Subroutine auf, die sich an der angegebenen Adresse addr16 befindet.

Der Befehl inkrementiert (erhöht) den Programmzähler dreimal, 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 16bit-Zieladresse ergibt sich aus dem Byte 2 und 3 des LCALL -Befehls, die in den Programmzähler (PC) geladen werden. Die aufgerufene Subroutine kann daher an einem beliebigen Speicherplatz im gesamten 64kByte-Programmspeicher starten.

Kennzeichnungsbits werden nicht beeinflußt.

 

Beispiel


Zu Beginn enthalte der Stack Pointer (SP) den Wert 07H. Die Marke SUBRTN befinde sich am Programmspeicherplatz 1234H. 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 26H (23H + 03H) bzw. 01H (Rückkehradresse) und der Programmzähler enthält 1234H (Platz der Subroutiene SUBRTN).

 

Bytes:      3
Zyklen:    2

 

Befehlscodierung


  0   0   0   1   0   0   1   0 
    
 a15  a14  a13  a12  a11  a10  a9  a8
    
 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 2