gpt4 book ai didi

java - IJVM ILOAD 指令未加载正确的值

转载 作者:行者123 更新时间:2023-12-01 23:05:45 24 4
gpt4 key购买 nike

我正在编写一个简单的程序来计算 MIC1 架构的 IJVM 中几个整数的绝对值。我正在使用位于 here 的模拟器.

这是代码:

BIPUSH 0xC0  
DUP
ISTORE i1
ISTORE i2

LDC_W OBJREF
ILOAD i1
INVOKEVIRTUAL
OUT

LDC_W OBJREF
ILOAD i2
INVOKEVIRTUAL abs
OUT

其中abs是计算整数绝对值的方法。

第一次调用abs工作正常,并正确计算了0xC0的绝对值,输出0x11。但是,第二次调用没有,并输出 0x77

当我使用模拟器逐条指令观察堆栈帧时,第二个 ILOAD 最终将 0x00000000 推送到堆栈上,而不是像第一条指令那样将 0xffffffc0 推送到堆栈上。这意味着只有函数的第一次调用才真正输出正确的值。

有谁知道为什么它在后续调用中输出 0x00000000 而不是?

最佳答案

经过一番调查后我修复了这个问题 - 该方法中有一条指令未正确使用。

关于java - IJVM ILOAD 指令未加载正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004426/

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