EDT-Referat BÜLBÜL Erkan 2ANB 95 /96 Seite 1 EDT-REFERAT Adressierungsarten INHALTSVERZEICHNIS 1.Theoretische Grundlagen 1.0 Einführung 1.1 Programm- & Datenspeicheradressierbereiche 2.Adressierungsarten 2.0 Bit oder Byte? 2.1 Direkte Adressierung & Registeradressierung 2.2 Unmittelbare Wertzuweisung 2.3 Indirekte, indizierte Adressierung
EDT-Referat BÜLBÜL Erkan 2ANB 95 /96 Seite 2 1. THEORETISCHE GRUNDLAGEN 1.0 Einführung Damit die Adressierungsarten noch verständlicher werden, ist eine Übersicht über die Speicherorganisation und Adressierbereiche von großer Bedeutung. In diesem Referat wurden die 80C51-Based Microcontrollers behandelt. 1.1 Programmspeicher- & Datenspeicheradressierbereiche Der µp-80c51 hat im Prinzip folgende Speicher-Adressierbereiche, wobei 80C51 und 80C552 einige Unterschiede aufweisen. oberer Bereich 100 (4096 D ) 200 (8192 D ) 0FFFh (4095 D ) Intern EA = 1 0FFFh (4095 D ) EA = 0 unterer Bereich 1FFFh (8191 D ) Intern EA = 1 1FFFh (8191 D ) EA = 0 Fig.a) Programmspeicher- Adressierbereiche des 80C51 Fig.b) Programmspeicher- Adressierbereiche des 80C552 bei 80C51 nicht vorhanden 7Fh (127 D ) oberer unterer SFR 8 (128 D ) 8 (128 D ) 7Fh (127 D ) oberer unterer SFR 8 (128 D ) INTERN EXTERN INTERN EXTERN Fig.c) Datenspeicher- Adressierbereiche des 80C51 Fig.c) Datenspeicher- Adressierbereiche des 80C552
EDT-Referat BÜLBÜL Erkan 2ANB 95 /96 Seite 3 Programmspeicher besteht so wie der Datenspeicher aus einem internen und externen Teil. Wird der Anschluß EA 1 auf High-Pegel gehalten, so greift die CPU auf den internen Programmspeicher zu. Wenn aber die Adresse höher als die des Datenspeichers des unteren Bereiches 2 [siehe Fig.a) bzw. b)] ist, dann wird der externe Programmspeicher angesprochen. (Bei Programmspeicher besteht der externe Programmspeicher aus 2 Teilen; aus dem oberen und dem unteren. EA Anschluß hat nur dann eine Bedeutung, wenn der untere externe Programmspeicher angesprochen werden soll.) Programmspeicher wird mit MOVC-Befehl zugegriffen. Der externe Datenspeicher wird mit MOVX-Befehl angesprochen. Siehe Unterschiede zwischen internen Datenspeicher von 80C51 & 80C552. Der obere Bereich des internen Datenspeichers zwischen den Adressen 8 - FFh ist bei 80C51 nicht vorhanden. Für ausführlichere Infomation in diesem Gebiet siehe das Referat Speicher-organisation 3. 2.Adressierungsarten 2.0 Bit oder Byte? Bitadressierbar ist eine Adresse dann, wenn jedes Bit einzeln gesetzt (SetB) bzw. gelöscht (CLR) werden kann. Die bitadressierbaren Bereiche im internen Datenspeicher befinden sich 2-2Fh. Auch SFR sind bitadressierbar, außer einigen speziellen Register so wie TMOD, SP, DPTR, T1, T2... FFh 8 7h oberer Teil, falls vorhanden unterer Teil byteweise, indirekt adressierbar 7Fh 3 2Fh 2 = 1Fh Registerbank 3 Registerbank 2 Registerbank 1 Registerbank 0 Keine Sonderfunktion Byteweise adressierbar Bitadressierbarer Bereich 4-Registerbänke; jeweils 8 Register 1 EA...al Access, (externer Zugriff) 2 Unterer Bereich: bei 80C51 zw. -0FFFh, bei 80C552 zw.-1fffh 3 Das Referat Speicherorganisation wurde bereits von BRAATZ Peter gehalten.
EDT-Referat BÜLBÜL Erkan 2ANB 95 /96 Seite 4 2.1 Direkte Adressierung & Registeradressierung Der untere Bereich des internen Datenspeichers kann direkt adressiert werden (Adressen zw. 0-7Fh), so wie die SFR (8-FFh). Direktes Adressieren heißt, die Adresse, deren Inhalt bearbeitet werden soll, wir im Befehl angegeben. MOV dadr1,dadr2 Der Inhalt der dadr2 wird in die Adresse dadr1 gemove 4 d. MOV A,4 Der Inhalt der Adresse 4 wird in das Akku gemoved. MOV 42h,A Der Inhalt des Akku wird in die Adresse 4 gemoved. ADD A,33h Der Inhalt der Adresse 33h wird zum Akku addiert. MOV R1,A Der Inhalt des Akku wird in das Register R1 gemoved. MOV A,R2 Der Inhalt des R2 wird in das Akku gemoved. MOV A,P0 Der Inhalt des P0 5 wird in das Akku gemoved. MOV P1,R2 Der Inhalt des R2 wird in das P1 gemoved. 2.2 Unmittelbare Wertzuweisung Die unmittelbare Wertzuweisung -Ladung einer Konstanten- wird häufig auch zu den Adressierungsarten gerechnet. MOV A,#007 MOV R5,#007h Die Zahl 007 (Dezimal) wird in das Akku gemoved. Die Zahl 007 (Hex) wird in das Register R5 gemoved. Das vorangestellte Gatterzeichen # dient der Unterscheidung zwischen unmittelbarer Wertzuweisung und der direkten Adressierung. 2.3 Indirekte, indizierte Adressierung MOV A,@R1 Der Inhalt der Adresse, die im Register R1 steht, wird in das Akku gemoved. Eine indirekte indizierte Adresse ergibt sich aus der Inhalte eines Basisund eines Indexregister 4 Speziell für Harald move = laden, verschieben, der Inhalt des Akku wird ins Register gemoved heißt, der Inhalt des Akku wird ins Register geladen. 5 P0..Port 0, (Ports = Anschlüsse nach außen, Hardware-schnittstellen)
EDT-Referat BÜLBÜL Erkan 2ANB 95 /96 Seite 5 MOV A,@A+DPTR holt aus dem Programmspeicher den Inhalt der Adresse, die sich aus der Summe der Inhalte des Akku & DPTR ergibt.