Ключова разлика: Opcode е тип инструкция за машинен език. Той предоставя на компютъра инструкции, които показват какво да се прави с предоставените данни. Кодът на байта е подобен на кода по принцип, тъй като той също казва на машината какво да прави. Байт-код обаче не е проектиран да се изпълнява директно от процесора, а по-скоро от софтуерно базиран интерпретатор като Java или CLR.
Въз основа на това, каква архитектура се използва, операндите могат да бъдат регистърни стойности, стойности в стека, други стойности на паметта, I / O портове и т.н., определени и достъпни с помощта на повече или по-малко сложни режими на адресиране. Докато операциите могат да бъдат аритметични, като добавяне или изваждане, копиране на данни, логически операции и програмно управление, както и специални инструкции, като например CPUID или други.
Кодът на байта е подобен на кода по принцип, тъй като той също казва на машината какво да прави. Байт-код обаче не е проектиран да се изпълнява директно от процесора, а по-скоро от друга програма. Най-често се използва от софтуерно базиран интерпретатор като Java или CLR. Те превръщат всяка обобщена машинна инструкция в специфична машинна инструкция или инструкции, така че процесора на компютъра да разбере. Всъщност, името байт-код идва от набори от инструкции, които имат еднобайтови операционни кодове, последвани от опционални параметри.
Байтовите кодове обикновено са компактни цифрови кодове, константи и препратки. Всъщност те обикновено са цифрови адреси. Те кодират резултата от синтактичния анализ и семантичния анализ на неща като тип, обхват и дълбочина на вмъкване на програмни обекти. Следователно те често позволяват много по-добри резултати от директното тълкуване на изходния код. Те също така позволяват един и същ код да се изпълнява на различни платформи. Това от своя страна намалява зависимостта на хардуера и операционната система.
Объркването между Opcode и Bytecode произтича от факта, че opcodes също могат да бъдат намерени в байтови кодове и други представяния. Тези представяния често са предназначени за софтуерния интерпретатор, а не за хардуерно устройство. Освен това те използват малко по-високи типове данни и операции от повечето хардуерни партньори. Въпреки това, те са конструирани по подобен начин.
Сравнение между Opcode и байтовия код:
код на операция | байткод | |
Тип | Инструкция за машинен език | Инструкция за машинен език |
описание | Това е тип код, който предоставя на компютъра инструкции, указващи какво да правите с предоставените данни. | Е форма на набор инструкции, предназначена за ефективно изпълнение от софтуерен интерпретатор. |
Какво прави | Инструкции за работа с данни | Инструкции, указващи какво да правят |
Тичам в | Пускане от машината | Стартирайте във виртуална машина |
Използван от | железария | Софтуерно базиран интерпретатор като Java или CLR. |
С любезност на изображението: en.wikibooks.org, slideshare.net