Я полагаю, что после изучения Java в течение определенного периода времени каждый смог понять важность jvm, но вы, возможно, мало что знаете о системе инструкций в нем. Буквально это инструмент для вызова инструкций. Что касается введения некоторого конкретного содержания, мы покажем его вам ниже и поделимся с вами информацией о реестре jvm. Давайте вместе приступим к сегодняшнему исследованию.
1. Описание системы инструкций
Система инструкций JVM очень похожа на другие компьютерные системы команд. В то же время инструкции Java также состоят из двух частей: кода операции и операнда. Код операции представляет собой 8-битное двоичное число, за которым следует операнд, длина которого определяется по мере необходимости. Код операции используется для указания характера операции инструкции (здесь мы объясняем это в виде ассемблерных символов). Например, iload означает загрузку целого числа из памяти, anewarray означает выделение места для нового массива, а iand означает выделение места для нового массива. «И» двух целых чисел ,ret представляет управление процессом, возвращаемое в результате вызова метода. Когда длина превышает 8 бит, операнд для хранения делится на несколько байтов. В этой ситуации JVM использует метод кодирования «бигендиан», то есть старшие биты располагаются в младших байтах. Эта ситуация аналогична методу кодирования, используемому Motorola и RISCCPU, но отличается от метода кодирования «littleendian», используемого Intel, то есть младшие биты хранят младшие байты.
Система команд Java предназначена для реализации языка Java. Она содержит инструкции для вызова методов и мониторинга многоприоритетных систем. Длина 8-битных кодов операций в JVM доводит JVM до максимума 256 инструкций, и теперь используется более 160 инструкций.
2. Часто используемые регистры
Все ЦП содержат набор регистров, в котором хранится состояние системы и информация, необходимая процессору. Когда виртуальная машина определяет больше регистров, из них можно получить больше информации без доступа к стеку или памяти, что помогает повысить скорость работы. Однако если количество регистров в виртуальной машине превышает количество реальных процессоров, то при реализации виртуальной машины будет потрачено большое количество процессорного времени на моделирование регистров с помощью обычной памяти, что фактически снизит эффективность виртуальной машины. . Для этого JVM устанавливает только 4 наиболее часто используемых регистра. Они есть:
(1) Счетчик программ ПК
(2) указатель вершины стека операндов optop
(3) указатель текущей среды выполнения кадра
(4) vars указывает на указатель на первую локальную переменную в текущей среде выполнения.
Все регистры 32-битные. ПК используется для записи выполнения программы. optop,frame и vars используются для записи указателей на область стека Java.
Вышеупомянутое представляет собой введение в систему инструкций JVM для Java. Эта статья в основном посвящена теоретическим знаниям. После изучения вы можете сохранить документ, чтобы облегчить просмотр знаний в будущем.