Compiler construction 设置数组引用等于jasmin汇编程序

Compiler construction 设置数组引用等于jasmin汇编程序,compiler-construction,jvm,jasmin,Compiler Construction,Jvm,Jasmin,我在计算如何在jasmine中分配到彼此相等的数组时遇到了一些问题。我希望编译如下代码 array a[1]; array b[1]; a = b; 现在我想要一个b的实际副本,而不是将它们分配给同一个对象。假设a在寄存器0中,b在寄存器1中 下面是我认为有效的方法 aload 1 astore 0 但事实上,现在如果我改变b,那么a也会改变。我该如何在jasmin中实现这一点,以使数组不同,例如 array a[1]; array b[1]; a[1] = 'a'; b[1] =

我在计算如何在jasmine中分配到彼此相等的数组时遇到了一些问题。我希望编译如下代码

array a[1];
array b[1];

a = b;
现在我想要一个b的实际副本,而不是将它们分配给同一个对象。假设a在寄存器0中,b在寄存器1中

下面是我认为有效的方法

aload   1
astore  0

但事实上,现在如果我改变b,那么a也会改变。我该如何在jasmin中实现这一点,以使数组不同,例如

array a[1];
array b[1];
a[1] = 'a';
b[1] = 'b';
a = b;
b[1] = 'a';
print a; //should print 'b' but prints 'a' currently
print b; //should print 'a' and does currently

请注意,我编写的代码是正确的java,但是,这是针对另一种语言的。

这与Jasmin或字节码无关


如果要复制数组的内容,请使用指令或/调用。

现在如果我更改b,那么a也会更改,这在Java中也是如此。是的,我知道这种语言不同,我只是为Java虚拟机编译。事实上,我刚刚编译了我输出的代码,它与java编译器的输出完全相同,这就是问题所在。因为我想做些与众不同的事@sepp2k