jjvm icon indicating copy to clipboard operation
jjvm copied to clipboard

跳转指令中,PC和offset的疑问

Open huangwei2013 opened this issue 5 years ago • 2 comments

在尝试实现&调试“条件跳转指令”过程中,遇到PC、offset计算问题。 按JVM文档、资料、class二进制内容,得到的结果都是新地址为

	offset+PC
		其中 offste = (operand1<<8)|operand2

但本项目中,PC地址似乎保存的是第N条指令,于是直接加offset,会超出operands数组长度范围

参考项目,如 https://github.com/zachaxy/JVM/ 的 blob/master/Java/src/instructions/base/BytecodeReader.java

程序自己维护PC,并且每读出一个 UINT8 内容,会递增 PC
这个才比较符合JVM规范的说明

huangwei2013 avatar Jun 17 '19 06:06 huangwei2013

确实之前pc的实现,没有仔细去查阅文档,想当然就实现了,非常感谢你能指出。如果你有精力,欢迎提交patch :P

caoym avatar Jun 17 '19 06:06 caoym

感谢确认,花了几天时间才确认这个问题 333

我会尝试一下增加该部分处理:)

huangwei2013 avatar Jun 17 '19 12:06 huangwei2013