Spec-Zone .ru
спецификации, руководства, описания, API
|
Содержание | Предыдущий | Следующий | Индекс | Спецификация Виртуальной машины JavaTM |
Работа
Подпрограмма перехода
Формат
jsr branchbyte1 branchbyte2
Формы
jsr = 168 (0xa8)
Стек операнда
......, адрес
Описание
Адрес кода операции инструкции, сразу следующей этим jsr инструкциям, продвигается на стек операнда как значение типа returnAddress
. branchbyte1 без знака и branchbyte2 используются, чтобы создать 16-разрядное смещение со знаком, где смещение (branchbyte1 << 8) | branchbyte2. Выполнение продолжается при том смещении от адреса этой jsr инструкции. Целевой адрес должен быть адресом кода операции инструкции в пределах метода, который содержит эту jsr инструкцию.
Примечания
jsr инструкция используется с мочить инструкцией в реализацииfinally
пункты языка программирования Java (см. Раздел 7.13, "Компилируяfinally
"). Отметьте, что jsr продвигает адрес на стек операнда, и мочите, вытаскивает это из локальной переменной. Эта асимметрия является намеренной.
Работа
Подпрограмма перехода (широкий индекс)
Формат
jsr_w branchbyte1 branchbyte2 branchbyte3 branchbyte4
Формы
jsr_w = 201 (0xc9)
Стек операнда
......, адрес
Описание
Адрес кода операции инструкции, сразу следующей этим jsr_w инструкциям, продвигается на стек операнда как значение типа returnAddress
. branchbyte1 без знака, branchbyte2, branchbyte3, и branchbyte4 используются, чтобы создать 32-разрядное смещение со знаком, где смещение (branchbyte1 << 24) | (branchbyte2 << 16) | (branchbyte3 << 8) | branchbyte4. Выполнение продолжается при том смещении от адреса этой jsr_w инструкции. Целевой адрес должен быть адресом кода операции инструкции в пределах метода, который содержит эту jsr_w инструкцию.
Примечания
jsr_w инструкция используется с мочить инструкцией в реализацииfinally
пункты языка программирования Java (см. Раздел 7.13, "Компилируяfinally
"). Отметьте, что jsr_w продвигает адрес на стек операнда, и мочите, вытаскивает это из локальной переменной. Эта асимметрия является намеренной.
Хотя jsr_w инструкция берет 4-байтовое смещение ответвления, другие факторы ограничивают размер метода к 65535 байтам (§4.10). Этот предел может быть повышен в будущем выпуске виртуальной машины Java.
Содержание | Предыдущий | Следующий | Индекс
Спецификация Виртуальной машины JavaTM
Авторское право © Sun Microsystems, Inc 1999 года. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к jvm@java.sun.com