Я создал прототип виртуальной машины на Java (так как это язык, на котором я наиболее удобен), и я пытаюсь сохранить инструкции в формате байт-кода. Мне интересно, как я могу хранить ценности в байткод, так как байт s может быть только 0 до 255.Сохранение значений в формате байткода
В качестве примера:
push 4752
Нажмите будет иметь значение опкода 0. Но как я могу сохранить 4752? Он не вписывается в один байт. Я мог хранить значения в 4 байтах, что позволяло им быть 32-битными целыми числами, но тогда мне пришлось бы решить, нужно ли загружать код операции (1 байт) или значение (4 байта). В настоящее время я передаю программу как целочисленный массив, а виртуальная петля проходит через массив и выполняет коды операций. Если код операции требует значения, он берет его из массива, а затем увеличивает счетчик программ, чтобы пропустить значение, чтобы он не выполнялся.
Я попытался выяснить, как виртуальные машины, такие как JVM, делают это, но я не смог это выяснить.
спасибо, это похоже на решение :) –