Zum Inhalt springen

Benutzer:Steschke/Befehlssatz

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 11. Dezember 2005 um 13:16 Uhr durch Grabert (Diskussion | Beiträge) (Mathematische Operationen). Sie kann sich erheblich von der aktuellen Version unterscheiden.

{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.