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


von Daniel K. (daniel_k80)


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)


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)


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)


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)


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)


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.

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.