www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Prozessoren


Autor: Jan Haan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan Haan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort, die sehr hilfreich war!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.