Forum: Mikrocontroller und Digitale Elektronik Prozessoren


von Jan Haan (Gast)


Lesenswert?

Hi, kann mir jemand erklären wie ein Prozesser mit den Daten und
Adressleitungen arbeitet:

Wenn ich z.B einen Befehl wie den ausführer (ich kenn mich leider fast
garnicht mir Assembler aus):

in register, adresse
out adresse, register

Dann muss der Prozessor doch über die Daten und Adressleitungen 2
Befehle leesen, 1 Wert einlesen und 1 Wert ausgeben,

Wie läuft das nun genau ab?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mal für einen willkürlichen 8-Bit-Prozessor:

1. Opcode "in register" lesen
   Inhalt von PC an Adressleitungen anlegen,
   MEMRD aktivieren
   Lesezugriff auf Datenbus durchführen
   MEMRD deaktivieren

   (Ich nehme hier mal einen µP an, bei dem es für jedes
   Register einen eigenen "in register, xxx"-Opcode gibt)

2. Argument "adresse" lesen (8 Bit)
   Inhalt von PC+1 an Adressleitungen anlegen
   MEMRD aktivieren
   Lesezugriff auf Datenbus durchführen
   MEMRD deaktivieren

3. Argument "adresse" lesen (weitere 8 Bit)
   Inhalt von PC+2 an Adressleitungen anlegen
   MEMRD aktivieren
   Lesezugriff auf Datenbus durchführen
   MEMRD deaktivieren

   (Hier nehme ich an, daß "adresse" ein 16-Bit-Wert ist)

4. Operation ausführen
   "adresse" an Adressleitungen anlegen
   IORD aktivieren
   Lesezugriff auf Datenbus durchführen
   IORD deaktivieren

Intern ist jetzt der PC aktualisiert

5. Opcode "out xxx, register" lesen
   Inhalt von PC an Adressleitungen anlegen,
   MEMRD aktivieren
   Lesezugriff auf Datenbus durchführen
   MEMRD deaktivieren

6. Argument "adresse" lesen (8 Bit)
   Inhalt von PC+1 an Adressleitungen anlegen
   MEMRD aktivieren
   Lesezugriff auf Datenbus durchführen
   MEMRD deaktivieren

7. Argument "adresse" lesen (weitere 8 Bit)
   Inhalt von PC+2 an Adressleitungen anlegen
   MEMRD aktivieren
   Lesezugriff auf Datenbus durchführen
   MEMRD deaktivieren

8. Operation ausführen
   "adresse" an Adressleitungen anlegen
   IOWR aktivieren
   Schreibzugriff auf Datenbus durchführen
   IOWR deaktivieren

von Jan Haan (Gast)


Lesenswert?

Danke für die schnelle Antwort, die sehr hilfreich war!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.