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

MOVX     <Zielbyte>,<Quellenbyte>


Funktion


Transportiere vom oder zum externen RAM.

 

MOVX     A,@Ri           @Ri = 8 Bit Adresse in R0 oder R1
MOVX     A,@DPTR   DPTR = Datenzeiger
MOVX     @Ri,A    
MOVX     @DPTR,A    

 

Beschreibung


Die MOVX-Befehle transportieren Daten zwischen dem Akkumulator (A) und dem externen Datenspeicher (X von e X tern). Die zwei verschiedenen Befehlstypen erzeugen entweder eine indirekte 8bit- oder eine indirekte 16bit-Adresse für den externen RAM-Datenspeicher.

8bit-Adresse
R0 oder R1 der gerade gewählten Registerbank erzeugt eine 8bit-Adresse, die im Multiplex mit Daten an Port 0 zur Verfügung steht. Acht Bits sind zur Decodierung bei der externen E/A-Erweiterung ausreichend, was jedoch einen relativ kleinen RAM-Bereich bedeutet (max. 256 Byte). Zur Erzielung etwas größerer Bereiche können beliebige Anschlüsse der AUsgangsports für die Ausgabe höherwertiger Adressbity verwendet werden. Diese Anschlüsse müssen dann vor einem MOVX-Befehl entsprechend programmiert werden.

16bit-Adresse
Der Datenzeiger (DPTR) erzeugt eine 16bit -Adresse. Die unteren acht Adressbits (DPL) liegen im Multiplex mit Daten an Port 0 und die oberen acht Adressbits (DPH) liegen an Port 2 zur Verfügung. Das spezielle Funktionsregister Port 2 behält seinen früheren Inhalt, während am Ausgang von Port 2 der Inhalt von DPH ansteht. Diese Arbeitsweise ist schneller und effizienter, wenn man auf sehr große Speicherbereiche (bis zu 64 kBytes) zugreifen will, da keinezusätzlichen Befehle zur Programmierung der Ausgangsports erforderlich sind.

Bei bestimmten Situationen ist es möglich, die beiden MOVX-Befehlstypen alternativ zu verwenden. Ein großer externer Speicherbereich, dessen höherwertige Adressleitung durch Port 2 getrieben werden, läßt sich über den Datenzeiger adressieren oder aber mittels Programmierung der höherwertigen Adressbits von Port 2 und einem folgenden MOVX-Befehl, der die Register R0 oder R1 benutzt.

Kennzeichnungsbits werden nicht beeinflusst.

 

Beispiel


Ein externes 256Byte-RAM mit im Multiplexverfahren arbeitenden Adress- und Datenleitungen ist an Port 0 des 8051-Mikrocontrollers angeschlossen. Die Steuerung des externen RAM über Port  3. Port 1 und Port  2 werden für den normalen E/A-Betrieb verwendet. Die Register R0 und R1 enthalten 12H bzw. 34H. Der Speicherplatz 34H des externen RAM enthält den Wert 56H. Die Befehlsfolge

MOVX     A,@R1
MOVX     @R0,A

kopiert den Wert 56H sowohl in den Akkumulator (A) als auch in den externen RAM-Speicherplatz 12H.

 

 

MOVX     A,@Ri

Kopiere den Inhaltes der Adresse des externen RAM, welche durch den Wert in Ri definiert ist, in den Akkumulator (A).
@Ri = 8 Bit Adresse in R0 oder R1

Bytes:      1
Zyklen:    2

Befehlscodierung

 1   1   1   0   0   0   1   i 

 

 

MOVX     A,@DPTR

Kopiere den Inhaltes der Adresse des externen RAM, welche durch den Wert im Datenzeiger definiert ist, in den Akkumulator (A).
@DPTR = Datenzeiger

Bytes:      1
Zyklen:    2

Befehlscodierung

 1   1   1   0   0   0   0   0 

 

 

MOVX     @Ri,A

Kopiert den Inhalt des Akkumulators an den Speicherplatz des externen RAM, welcher durch den Wert in Ri definiert ist.
@Ri = 8 Bit Adresse in R0 oder R1

Bytes:      1
Zyklen:    1

Befehlscodierung

 1   1   1   1   0   0   1   i 

 

 

MOVX     @DPTR,A

Kopiert den Inhalt des Akkumulators an den Speicherplatz des externen RAM, welche durch den Wert im Datenzeiger definiert ist.
@DPTR = Datenzeiger

Bytes:      1
Zyklen:    2

Befehlscodierung

 1   1   1   1   0   0   0   0 

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