理解 invoke-kind/range 参数字数

understanding invoke-kind/range argument word count

我无法理解 invoke-kind/range 操作码的结构,

语法

invoke-kind/range {vCCCC .. vNNNN}, meth@BBBB

参数

A: argument word count (8 bits)

B: method reference index (16 bits)

C:first argument register (16 bits)

N = A + C - 1

如您所见,字节码语法中提到了 B 和 C,但没有提到 A,A 参数位于何处及其确切含义?

谢谢。

A 包含传递给方法的寄存器的数量。

所以如果你有invoke-static/range {v0 .. v7}, method,那么A就是8,C就是0。从底部的公式可以看出,最后传递的寄存器N计算为N = A + C - 1, 所以 N = 0 + 8 - 1 = 7