Schlüsseldifferenz: Opcode ist eine Art von Maschinensprache. Es gibt dem Computer Anweisungen, die angeben, was mit den bereitgestellten Daten zu tun ist. Bytecode ähnelt in seiner Art dem Opcode, da er der Maschine auch mitteilt, was zu tun ist. Bytecode kann jedoch nicht direkt vom Prozessor ausgeführt werden, sondern von einem softwarebasierten Interpreter wie Java oder CLR.
Abhängig davon, welche Architektur verwendet wird, können die Operanden Registerwerte, Werte im Stapel, andere Speicherwerte, E / A-Anschlüsse usw. sein, die unter Verwendung von mehr oder weniger komplexen Adressierungsmodi spezifiziert werden und auf die zugegriffen wird. Die Operationen können dabei Arithmetik sein, wie Addieren oder Subtrahieren, Kopieren von Daten, logische Operationen und Programmsteuerung sowie spezielle Anweisungen wie CPUID oder andere.
Bytecode ähnelt in seiner Art dem Opcode, da er der Maschine auch mitteilt, was zu tun ist. Bytecode ist jedoch nicht dafür ausgelegt, vom Prozessor direkt ausgeführt zu werden, sondern von einem anderen Programm. Es wird am häufigsten von einem Software-basierten Interpreter wie Java oder CLR verwendet. Sie konvertieren jede verallgemeinerte Maschinenanweisung in eine bestimmte Maschinenanweisung oder Anweisungen, so dass der Prozessor des Computers dies versteht. Tatsächlich stammt der Name-Bytecode aus Befehlssätzen, die Ein-Byte-Opcodes gefolgt von optionalen Parametern enthalten.
Bytecodes sind im Allgemeinen kompakte numerische Codes, Konstanten und Referenzen. Tatsächlich sind sie normalerweise numerische Adressen. Sie kodieren das Ergebnis der Analyse und semantischen Analyse von Dingen wie Typ, Umfang und Schachtelungstiefe von Programmobjekten. Daher ermöglichen sie oft eine viel bessere Leistung als die direkte Interpretation des Quellcodes. Sie ermöglichen auch, dass derselbe Code auf verschiedenen Plattformen ausgeführt wird. Dies reduziert wiederum die Abhängigkeit von Hardware und Betriebssystem.
Die Verwechslung zwischen Opcode und Bytecode entsteht dadurch, dass Opcodes auch in Bytecodes und anderen Darstellungen enthalten sind. Diese Darstellungen sind häufig eher für einen Software-Interpreter als für ein Hardwaregerät gedacht. Sie verwenden auch Datentypen und Operationen mit etwas höherer Ebene als die meisten Hardware-Gegenstücke. Sie sind jedoch auf ähnliche Weise aufgebaut.
Vergleich zwischen Opcode und Bytecode:
Opcode | Bytecode | |
Art der | Maschinensprache-Anweisung | Maschinensprache-Anweisung |
Beschreibung | Ist ein Typ von Code, der dem Computer Anweisungen gibt, die angeben, was mit den bereitgestellten Daten zu tun ist. | Ist eine Form eines Befehlssatzes, der für die effiziente Ausführung durch einen Software-Interpreter konzipiert ist. |
Was es macht | Anweisungen für Operationen an Daten | Anweisungen, die zeigen, was zu tun ist |
Einlaufen | An der Maschine laufen lassen | Führen Sie eine virtuelle Maschine aus |
Benutzt von | Hardware | Software-basierter Interpreter wie Java oder CLR. |
Bild mit freundlicher Genehmigung: de.wikibooks.org, slideshare.net