设置数组引用等于 jasmin 汇编程序
Setting array references equal jasmin assembler
我在弄清楚如何在 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 或字节码的。
如果要复制数组的内容,请调用Object.clone
with invokevirtual
instruction or Arrays.copyOf
/ System.arraycopy
with invokestatic
。
我在弄清楚如何在 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 或字节码的。
如果要复制数组的内容,请调用Object.clone
with invokevirtual
instruction or Arrays.copyOf
/ System.arraycopy
with invokestatic
。