Установка равных ссылок на массивы jasmin asembeler - PullRequest
0 голосов
/ 01 декабря 2018

У меня возникли проблемы с выяснением, как назначать массивы, равные друг другу в жасмине.Я хочу скомпилировать код, подобный следующему

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

a = b;

Теперь я хочу, чтобы фактическая копия b не присваивала их одной и той же вещи.Предположим, что а находится в регистре 0, а б - в регистре 1

, тогда следующее, как я думал, будет работать

aload   1
astore  0

, но на самом деле сейчас, если я изменю b, тогдатакже изменится.Как бы я сделал это в 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, однако, это для другого языка.

1 Ответ

0 голосов
/ 01 декабря 2018

Речь идет вовсе не о Jasmin или байт-коде.

Если вы хотите скопировать содержимое массива, вызовите Object.clone с invokevirtual инструкция или Arrays.copyOf / System.arraycopy с invokestatic.

...