{inuse} Der Befehlssatz des 8085 ist größtenteils identisch mit dem des 8080. Er umfasst überwiegend 8-Bit-Befehle, für Registerpaar und Adessierungen auch eine Hand voll 16-Bit-Befehle. Nur die Interruptbefehle des 8085 sind beim 8080 nicht vorhanden. Dem gegenüber hat der Z80 einen deutlich erweiterten Befehlssatz.
Lade- und Speicherbefehle (8-Bit)
Lade- und Speicherbefehle (8-Bit) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Wirkung | Befehl | Register | sonst. | |||||||
A | B | C | D | E | H | L | M | K | ||
A <- __ | MOV A,_ | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
B <- __ | MOV B,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
C <- __ | MOV C,_ | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
D <- __ | MOV D,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
E <- __ | MOV E,_ | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
H <- __ | MOV H,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
L <- __ | MOV L,_ | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
M <- __ | MOV M,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
M steht für eine Speicheroperation
K steht für Kopierbefehle mit Konstanten. Die Tabelle ist erst einmal nur ein optischer Aufhänger und stammt aus der Registerbescheibung des 8085 |
Lade- und Speicherbefehle kopieren den Inhalt eines Registers, einer Speicherstelle oder eine Konstante in ein Register oder in eine Speicherstelle. Der Inhalt der Quelle bleibt dabei unverändert. Die Adresse für das Kopieren in eine Speicherstelle oder aus einer Speicherstelle steht im Registerpaar H/L.
Alle Kopierbefehle ohne Konstanten sind ein Byte lang, Kopierbefehle mit Konstanten sind zwei Bytes lang, im zweiten Byte steht die Konstante.
Keiner dieser Befehle verändert Prozessorflags. Somit bleibt das Ergebnis einer vorhergehenden Vergleichs- oder Rechenoperation erhalten und kann auch nach dem Kopieren für Verzweigungen und Sprünge genutzt werden.
Für das Kopieren von einem Register in ein Register wird ein M1-Zyklus (4 Takte) benötigt, beim Kopieren von einer Speicherstelle in ein Register oder umgekehrt wird ein M1- und ein M2-Zyklus (7 Takte) benötigt, beim Kopieren einer Konstanten in ein Register benötigt man 7 Takte, einer Konstanten in eine Speicherstelle 10 Takte.
Befehle, die den Registerinhalt in das selbe Register schreiben sind möglich, aber sinnlos. Für Speicher-Kopierbefehle mit den Registern H und L bieten sich eher die 16-Bit-Befehle an. Das direkte Kopieren von Speicherzelle zu Speicherzelle ist nicht möglich.
Hier muss noch ne Menge Bla hin, Text ist noch nicht omatauglich. Wirklich nicht ;-)
Logische Operationen
and/or/rotieren/shiften/and/or/xor
Mathematische Operationen
add/sub (mul/div wohl nicht, hab's vergessen)
Lade- und Speicherbefehle (8-Bit) | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Wirkung | Befehl | Register | sonst. | |||||||
A | B | C | D | E | H | L | M | K | ||
r <- r +1 | INC r | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
B <- __ | MOV B,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
C <- __ | MOV C,_ | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
D <- __ | MOV D,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
E <- __ | MOV E,_ | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
H <- __ | MOV H,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
L <- __ | MOV L,_ | 7Fh | - | R7.5 | MSE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 |
M <- __ | MOV M,_ | 47h | I5.5 | INTE | M7.5 | M6.5 | M5.5 | M6.5 | M5.5 | M5.5 |
M steht für eine Speicheroperation
K steht für Kopierbefehle mit Konstanten. |