Ein Opcode , Auch op code oder Operationscode , ist Eine Zahl, stirbt die Anzahl Einen Maschinenbefehl Für ein Bestimmt Prozessortyp angibt. Alle Opcodes zusammen bildeten den Befehlssatz des Prozessors oder die Prozessor-Familie. Jeder befehl Hut EINEN Eigenen Opcode, ETWA sterben Addition, Multiplikation, Kopieren Sie das Eren von Registry Stern , Laden und Speichern von Registry Stern aus dem Arbeitsspeicher , Ein- und Ausgabe usw. Einfache Opcodes bereiten einen einzelnen Maschinenbefehl vor. Auf einen Teil der Opcodes müssen Adresse, Konstanten oder Ederliches folgen, dann mit dem Opcode einen Maschinenbefehl bild.
Jede Opcode wird ein kurzes Wort oder eine Abkürzung, ein so genanntes Mnemonic , zugeordnet. Mit der Mnemotechnik Ergeben sich sterben Assemblersprachen , bei Denen Jeweils ein Mnemonic, gefolgt von gegebenenfalls Adresse oder Konstante, in Eine Zeile Wacholder Textdatei geschrieben Wird. Ein spezielles Programm, der Assembler , ist für den Mask-Code vorgesehen , der die Mnemotechniken enthält, die verwendet werden, um aktuelle Opcodes zu erstellen.
Diejenigen, die moderne Prozessoren vermissen, besitzen ihre eigenen Codes.
Ältere Prozessor hat oft „undefinierte“ oder „Illegale“ Opcodes. Bestimmt, für sterben Programmierung gar nicht vorgesehenen Opcodes Könnte Durch Ihre Nebenwirkungen auf die intern Schaltungsaufbau Dezember Prozessor sehr Hand Seltsame, Schädlich oder seltener Auch Nützliche Effekte HAT. Sölch Opcodes gerechnet wird manchmal bei der Programmierung von Computern auf Heimcomputer und früher Spielkonsolen Benutzt, um ein wenig Bestimmt Vorgänge schnellen Ablauf zu lassen oder um sterben Funktionsweise Einen Kopierschutzeszu verschleiern. Nachtig Krieg, warum „undefined Opcodes“ vom Hersteller nicht oft wissen nicht die Features. Heavy Prozessors tun, wenn sie in einem klar definierten Fehlerzustand begonnen haben.
Da 8-Bit Prozessor Z80
Opcode im Hex |
mnemotechnisch | Beschreibung |
---|---|---|
04 | INC. B | erhöhen Register B um eins (engl. inc rement B ) |
05 | DEC A | vermindere Register A um eins (engl. Dezember rement A ) |
90 | SUB B | Sub trahiere Register B von Akkumulator A |
21 ll hh | LD HL, hhll | l oa d HL mit der Constant HHLL |
… | … | weitere Befehle |
Hinweis: Für den Z80 gibt es zwei verschiedene Mnemotechniken (LD M, B, LD (HL), B) und die Vorgänger CPU Intel 8085 (MOV M, B).
Nach Z80-Mnemonics
DEC A INC. B UNTER B LD HL, 1234h
Auf Erzeugen folgt das Z80-Maschinenprogramm
05 04 90 21 34 12
Maschinenprogramme waren hutzutage praktisch jedes hexadezimal darstellte (seltene Alternativen: dezimal, oktal ). Manchmal wurden 16-Bit-Werte als 8-Bit-Wörter in der Bytereihenfolge im Hauptspeicher, ohne eine einzige 16-Bit-Wort in der logischen Reihenfolge:
05 04 90 21 1234
Der Relaisrechner Zuse Z3
Die Z3 von Konrad Zuse aus dem Jahr 1941 kappen Zwei Register R1 und R2, 64 Speicherzellen und Beherrschen sterben Ein- / Ausgabe, sterben vier Grundrechenarten und sterben Wurzelberechnung von Gleitkommazahlen. Programm wurde auf Lochstreifen abgelegt, die Opcodes der Neun Befehle Dateien aus den folgenden Lochstreifencodierungen:
Opcode wer auf der Lochkarte |
mnemotechnisch | Beschreibung |
---|---|---|
-O.OO---- |
Lu | Anhalten, Eingabe R1 einer Dezimalzahl von der Tastatur, R2: = undef |
-O.OOO--- |
Ld | Anhalten, dezimale Anzeige des Ergebnisses |
OO.zzzzzz |
Pr z | Lesen Sie die Speicherzelle z (ersetzen Sie R1, dann jedes R2) |
O-.zzzzzz |
Ps z | Schreiben von R1 in Speicherzelle z |
-O.O----- |
La | Zusatz R1: = R1 + R2, R2: = 0 |
-O.O-O--- |
ls | Subtraktion R1: = R1-R2, R2: = 0 |
-O.--O--- |
Lm | Multiplikation R1: = R1 * R2, R2: = 0 |
-O.-O---- |
Li | Division R1: = R1 / R2, R2: = 0 |
-O.-OO--- |
Lw | Wurzelberechnung R1: = Wurzel (R1), R2: = 0 |