Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage zu Intel 8080 Assembler Tabelle


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Daniel K. (daniel_k80)


Bewertung
-2 lesenswert
nicht lesenswert
Hallo zusammen,
ich möchte mich gerne etwas mehr mit dem alten Intel 8080 beschäftigen 
und diesen gerne in VHDL nachbauen. Ich sitze gerade an der 
Mnemonic-Tabelle im Datenblatt 
(http://www.nj7p.info/Manuals/PDFs/Intel/9800153B.pdf ab Seite 2-16) und 
weiß leider nicht so recht wie ich die lesen muss (bisher noch nie was 
mit Assembler gemacht).
Kann mir vielleicht jemand eine kurze Erklärung geben, wie solche 
Tabellen aufgebaut sind?
Und was bedeutet es, wenn ein Pfeil über mehrere Reihen geht (ich 
vermute, dass dies nur andeuten soll, dass die Operation bei jedem der 
Befehle ebenfalls gemacht wird) bzw. wenn ein Pfeil über mehrere Zellen 
geht, sowie wo finde ich eine Information zu den verschiedenen 
hochgestellten Ziffern?

Vielen Dank für die Hilfe :)

PS: Ja, ich weiß, dass die Frage u. U. doof ist, aber es ist nunmal auch 
so, dass Assembler jetzt nicht mehr so weit verbreitet ist und man 
deswegen nicht so oft in Berührung damit kommt.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Bewertung
0 lesenswert
nicht lesenswert
Daniel K. schrieb:
> Und was bedeutet es, wenn ein Pfeil über mehrere Reihen geht (ich
> vermute, dass dies nur andeuten soll, dass die Operation bei jedem der
> Befehle ebenfalls gemacht wird) bzw. wenn ein Pfeil über mehrere Zellen
> geht

  Ja.


> sowie wo finde ich eine Information zu den verschiedenen
> hochgestellten Ziffern?

 2-20 [Notes]

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Daniel K. schrieb:
> wie solche Tabellen aufgebaut sind?

Dafür gibts kein DIN und kein ISO. Das macht der Autor grad wie er es 
für sinnvoll hält, in der Annahme, dass der geneigte Leser es versteht.

In einer Zeit, als sowas noch auf Schreibmaschinen und Zeichenbrettern 
entstand, war man halt etwas faul.

> sowie wo finde ich eine Information zu den verschiedenen
> hochgestellten Ziffern?

Herrje. Da wo es hingehört. Direkt im Anschluss an die Tabelle, 2-20.

: Bearbeitet durch User
von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
Ich empfehle dir Tabellen wie diese hier:
http://www.pastraiser.com/cpu/i8080/i8080_opcodes.html

Beachte, dass sämtliche Intel-Manuals in Bezug auf A-Flag und 
DAA-Instruktion unvollständig bzw. schlicht falsch sind. Das betrifft 
auch sämtliche Sekundärliteratur, die sich darauf stützt.

Der ultimative Test für einen i8080 ist der 8080/8085 CPU Exerciser. 
Leider ist die originale Webseite schon ein paar Jahre down, aber das 
Webarchiv hat eine Kopie unter 
https://web.archive.org/web/20151108135453/http://www.idb.me.uk/sunhillow/8080.html

Es gibt noch zwei weitere Testprogramme damaliger Zeit:
- "8080/8085 CPU Diagnostic" von Microcosm Associates, Version 1.0
- "Diagnostics II" von Supersoft Associates, Version 1.2
Die sind nicht schwer zu finden, in den letzten Jahren sind einige 
i8080-Emulatoren entstanden.

Allerdings testen diese nicht so ausführlich wie der Exerciser, sind 
dafür aber schneller (wobei letzteres Programm erstmal eine längliche 
Timingschleife zur Zeitverschwendung dreht, ehe es anfängt zu testen). 
Eine FPGA-Implementation sollte aber alle Tests innerhalb von wenigen 
Minuten durchlaufen lassen.

Ich habe eine relativ performante i8080-Emulation für AVRs mit 
XMEM-Interface geschrieben, die alle Tests besteht. Auf einem 16 MHz-AVR 
braucht der Exerciser trotzdem ein paar Stunden, ähnlich wie auf dem 
Original.

: Bearbeitet durch User
von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
S. R. schrieb:
> Beachte, dass sämtliche Intel-Manuals in Bezug auf A-Flag und
> DAA-Instruktion unvollständig bzw. schlicht falsch sind. Das betrifft
> auch sämtliche Sekundärliteratur, die sich darauf stützt.

Wo stehts denn richtig?

von S. R. (svenska)


Bewertung
1 lesenswert
nicht lesenswert
A. K. schrieb:
> Wo stehts denn richtig?

Im Quelltext verschiedener Emulatoren, welche den Exerciser korrekt 
ausführen können. Ich hab mich erst an Intels Dokumentation orientiert, 
aber festgestellt, dass die unvollständig ist (z.B. beeinflusst AND das 
Aux-Flag). Der Z80 verhält sich zudem anders.

Irgendwann hab ich dann die relevantesten Varianten ausprobiert. "DAA" 
war aber der nervigste Befehl, der Rest lief lange vorher.

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]
  • [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.