Klíčový rozdíl: Opcode je typ instrukce pro strojový jazyk. Poskytuje počítači pokyny, které ukazují, co s poskytnutými daty dělat. Byte kód je podobný opcode v přírodě, protože také říká stroj, co má dělat. Nicméně, bytecode není navržen tak, aby byl spuštěn procesorem přímo, ale spíše interpretem založeným na softwaru jako Java nebo CLR.
Na základě použité architektury jsou operandy registrovanými hodnotami, hodnotami v zásobníku, dalšími hodnotami paměti, vstupními / výstupními porty apod., Které jsou specifikovány a přístupné pomocí více či méně složitých režimů adresování. Zatímco operace mohou být aritmetika, jako například přidání nebo odečítání, kopírování dat, logické operace a řízení programu, stejně jako speciální instrukce, jako CPUID nebo jiné.
Byte kód je podobný opcode v přírodě, protože také říká stroj, co má dělat. Nicméně, bytecode není navržen tak, aby byl spuštěn procesorem přímo, ale spíše jiným programem. Nejčastěji je používán interpretem založeným na softwaru, jako je Java nebo CLR. Převádějí každou zobecněnou strojovou instrukci do konkrétní strojové instrukce nebo instrukce, které počítačový procesor porozumí. Ve skutečnosti název bytecode pochází z množiny instrukcí, které mají jeden bajt opcodes následované volitelnými parametry.
Bytecodes jsou běžně kompaktní číselné kódy, konstanty a odkazy. Ve skutečnosti jsou to obvykle číselné adresy. Kódují výsledek analýzy a sémantické analýzy věcí, jako je typ, rozsah a hloubka vnoření objektů programu. Proto často umožňují mnohem lepší výkon než přímá interpretace zdrojového kódu. Rovněž umožňují, aby stejný kód běžel na různých platformách. To zase snižuje závislost hardwaru a operačního systému.
Zmatek mezi Opcode a Bytecode vyplývá ze skutečnosti, že opcodes mohou být také nalezeny v bajtech a dalších reprezentacích. Tato reprezentace jsou často určena spíše pro softwarového tlumočníka než pro hardwarové zařízení. Používají také mírně vyšší úrovně datových typů a operací než většina hardwarových protějšků. Jsou však konstruovány podobně.
Srovnání mezi Opcode a Bytecode:
Opcode | Bytecode | |
Typ | Instrukce o jazyku počítače | Instrukce o jazyku počítače |
Popis | Jedná se o typ kódu, který poskytuje počítači pokyny, které ukazují, co mají s poskytnutými daty. | Je forma instrukční sady určená pro efektivní provedení softwarovým tlumočníkem. |
Co to dělá | Pokyny pro operace s daty | Pokyny ukazující, co dělat |
Běžet | Spusťte stroj | Spustit ve virtuálním stroji |
Používá se | Hardware | Tlumočník založený na softwaru jako Java nebo CLR. |
Obrázek Zdvořilost: en.wikibooks.org, slideshare.net