Сначала вам нужно сделать массив достаточно большим, чтобы вместить все элементы, поэтому вам нужно использовать count
, чтобы узнать, сколько элементов существует. Затем вам нужно создать массив такого размера, и, наконец, вам нужно поместить все элементы в массив.
Для меня не совсем очевидно, хотите ли вы, чтобы стек не нарушался или нет, поэтому есть два подхода:
%!
count % Count elements on stack - stack contains <elements...> n
array % Create array of that size - stack contains <elements...> []
astore % Move all elements from stack to array - stack contains [<elements...>]
Теперь, если вы хотите оставить стек без изменений:
%!
count % Count elements on stack - stack contains <elements...> n
array % Create array of that size - stack contains <elements...> []
astore % Move all elements from stack to array - stack contains [<elements...>]
aload % Push elements from array to stack - stack contains <elements...> [<elements...>]