gpt4 book ai didi

java - dup 和 dup_x2 之间的区别

转载 作者:行者123 更新时间:2023-12-01 14:19:20 26 4
gpt4 key购买 nike

我目前正在研究一些 Java 字节码。我读过两个操作码:dupdup2。如果我理解正确,那么它们之间的唯一区别是第一个只复制一个堆栈字,而第二个复制一对堆栈字。这很好,但它们每个都有自己的子操作码(dup_x1dup2_x2...)。

当我查看例如 dup_x2dup2_x1 的函数时,它们似乎做同样的事情:按顺序复制前三个值(因此从值 val4 , val3, val2, val1 还有val4, val3, val2, val1, val3, val2, val1)。我很困惑,因为没有理由为同一操作定义两个操作码。

那么这些操作码是做什么用的呢?他们的行动有任何官方引用吗?请帮忙。

最佳答案

Is there any official reference for their action?

当然有!它是 JVM 规范 - 特别是 section 6.5 .

这里就不复制了。点击链接并自己阅读所有内容。但基本思想是 dup_x1dup_x2 变体将重复值插入堆栈下方。

I'm confused, because there's no reason for defining two opcodes for same action.

仔细看(在规范中)。他们做的不是同一件事。

关于java - dup 和 dup_x2 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17388824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com