如何理解"最小的索引"在WebAssembly函数体中?

时间:2018-03-02 06:15:37

标签: webassembly

enter image description here

如何理解我用红色矩形区分的句子?

1 个答案:

答案 0 :(得分:3)

通过相同的index space访问本地和函数参数。索引空间是一个抽象实体 - 实现者可以根据需要自由放置参数和本地,但参数和本地应该通过相同的索引访问。

这个带有参数$ px和$ py的add2函数将在索引0处访问$ px,在索引1处访问$ py:

(func $add2 (param $px i32) (param $py i32) 
 get_local 0
 get_local 1
 i32.add)

add_local函数只包含一个参数,索引0的$ px和索引1的本地$ z。

   (func $add_local (param $px i32) (local $z i32)
     get_local 0
     get_local 1
     i32.add)

因此函数的索引空间由

组成
  • [0] = param0
  • [1] = param1
  • ...
  • [N] = paramN
  • [N + 1] = local0
  • [N + 2] = local1
  • ...
  • [N + M] = localM