変数関係の命令

AVM2で、どうやって変数を実現するか調査中。とりあえず、スタックの番号と名前の対応表がいる予感。

Flex3 SDKのasc.jarで

var x=42;

コンパイルすると、

  2         pushbyte            42
  4         getglobalscope
  5         swap
  6         setslot             1

が得られる。

関連してそうな命令

命令 補足
getlocal n番目のローカルレジスタの値をスタックにpush
setlocal n番目のローカルレジスタにスタックトップをセット
getglobalscope global scope objectをスタックにpush。global scope objectはscope stackの底
getscopeobject
getouterscope ???ドキュメントに記載なし
getslot
setslot スタック上のスコープオブジェクトのn番目にスタックトップをセット
getglobalslot
setglobalslot グローバルスコープのn番目にスタックトップをセット
swap スタックの上2つの値をスワップ
pushscope スコープスタックに値をpush