带'_'和不带'_'的iload之间的区别

问题描述 投票:0回答:1

我有一个关于 jasmin 的 iload 指令的问题。 做 iload 1 是正确的还是必须是 iload_1? 或者什么时候 1 到 3 之间的数字我们必须使用 '' 而其他我们不必使用 ''?

我正在生成 jasmin 代码。 首先,我用''尝试了每个 iload 指令,但它没有用。然后我尝试了所有没有''的指令,但它也没有用。

java jvm bytecode java-bytecode-asm jasmin
1个回答
1
投票

Java 字节码包含一个通用的

iload
指令,该指令采用 0 到 255 之间的值作为参数(因此编码为 2 个字节)。

对于更紧凑的字节代码,它包含 4 个特殊指令

iload_0
iload_3
,它们具有固定参数(0 到 3)并且仅编码为一个字节。

其他几个字节码指令也存在类似的模式。

iload
指令在 JVM 规范中进行了描述 (https://docs.oracle.com/javase/specs/jvms/se17/html/jvms-6.html#jvms-6.5.iload)。在该页面上,您还可以找到所有其他字节码指令的描述。

© www.soinside.com 2019 - 2024. All rights reserved.