www.wikidata.de-de.nina.az
Ein Opcode auch op code oder operation code ist eine Zahl die die Nummer eines Maschinenbefehls fur einen bestimmten Prozessortyp angibt Alle Opcodes zusammen bilden den Befehlssatz des Prozessors oder der Prozessorfamilie Jeder Befehl hat einen eigenen Opcode etwa die Addition Multiplikation das Kopieren von Registern Laden und Speichern von Registern aus dem Arbeitsspeicher Ein und Ausgabe usw Einfache Opcodes stellen bereits einen Maschinenbefehl dar Auf einen Teil der Opcodes mussen Adressen Konstanten oder Ahnliches folgen die dann zusammen mit dem Opcode einen Maschinenbefehl bilden Jedem Opcode wird ein kurzes Wort oder eine Abkurzung ein Mnemonic zugeordnet Mit den Mnemonics ergeben sich die Assemblersprachen bei denen jeweils ein Mnemonic gegebenenfalls gefolgt von Adressen oder Konstanten in eine Zeile einer Textdatei geschrieben wird Ein spezielles Programm der Assembler erzeugt Maschinencode indem es im Wesentlichen die Mnemonics durch ihre jeweiligen Opcodes ersetzt Die meisten modernen Prozessoren besitzen einige hundert Opcodes Altere Prozessoren hatten oft undefinierte oder illegale Opcodes Bestimmte fur die Programmierung gar nicht vorgesehene Opcodes konnten durch ihre Nebenwirkungen auf den internen Schaltungsaufbau des Prozessors allerhand seltsame schadliche oder seltener auch nutzliche Effekte haben Solche Opcodes wurden manchmal bei der Programmierung von Computerspielen auf Heimcomputern und fruhen Spielkonsolen benutzt um bestimmte Vorgange ein wenig schneller ablaufen zu lassen oder um die Funktionsweise eines Kopierschutzes zu verschleiern Nachteilig war dass solche undefinierten Opcodes vom Hersteller nicht garantiert wurden und auf Nachfolgemodellen eines Prozessors oft nicht mehr funktionierten Heutige Prozessoren tun dagegen entweder uberhaupt nichts wenn sie in einem Programm einen unbekannten Opcode antreffen oder aber sie begeben sich in einen klar definierten Fehlerzustand Der 8 Bit Prozessor Z80 BearbeitenOpcodein hex Mnemonic Beschreibung04 INC B erhohe Register B um eins engl increment B 05 DEC A vermindere Register A um eins engl decrement A 90 SUB B subtrahiere Register B von Akkumulator A21 ll hh LD HL hhll load HL mit der Konstante hhll weitere BefehleBemerkung Fur den Z80 gibt es zwei verschiedene Mnemonics LD M B bzw LD HL B hinzu kommt eine dritte fur die Vorganger CPU Intel 8085 MOV M B Folgende Z80 Mnemonics DEC A INC B SUB B LD HL 1234h erzeugen folgendes Z80 Maschinenprogramm 05 04 90 21 34 12 Maschinenprogramme werden heutzutage praktisch immer hexadezimal dargestellt seltene Alternativen dezimal oktal Manchmal werden 16 Bit Werte nicht als zwei 8 Bit Worte in der Bytereihenfolge im Hauptspeicher sondern als ein 16 Bit Wort in der logischen Reihenfolge angezeigt 05 04 90 21 1234Der Relaisrechner Zuse Z3 BearbeitenDie Z3 von Konrad Zuse aus dem Jahre 1941 hatte zwei Register R1 und R2 64 Speicherzellen und beherrschte die Ein Ausgabe die vier Grundrechenarten und die Wurzelberechnung von Gleitkommazahlen Programme wurden auf Lochstreifen abgelegt die Opcodes der neun Befehle bestanden aus den folgenden Lochstreifencodierungen Opcodeauf demLochstreifen Mnemonic Beschreibung O OO Lu Anhalten Eingabe R1 einer Dezimalzahl von der Tastatur R2 undef O OOO Ld Anhalten dezimale Anzeige des ErgebnissesOO zzzzzz Pr z Lesen der Speicherzelle z erst R1 danach immer R2 O zzzzzz Ps z Schreiben von R1 in Speicherzelle z O O La Addition 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 0O Loch kein Loch Transportloch zzzzzz binar codierte Speicherstelle 0 63Der Lochstreifen ist 8 Bits breit und weist ein asymmetrisches Transportloch zwischen dem zweiten und dritten Bit auf Die Opcodes fur die Speicherzugriffe belegen nur 2 Bits gefolgt von der Adresse der Speicherzelle Die anderen Opcodes belegen 5 Bits 3 Bits sind unbenutzt Weblinks BearbeitenRAUL ROJAS Konrad Zuse s Legacy The Architecture of the Z1 and Z3 In IEEE Annals of the History of Computing Vol 19 No 2 1997 S 5 16 englisch ed thelen org PDF abgerufen am 11 Oktober 2018 Abgerufen von https de wikipedia org w index php title Opcode amp oldid 238210076