我有以下 Wasm 函数,我想了解它是某种 webgl 片段着色器:func $frag_shader (param i32)(local i32 i32 i32 i32 i32) global.get 0 i32.const 32 i32.sub local.tee 1 global.set 0 local.get 1 i32.const 16 i32.add i32.const 1049267 i32.const 85 call 23 local.get 1 i32.load offset=16 align=4 local.set 2 block block block block local.get 1 i32.load offset=20 align=4 local.tee 3 local.get 1 i32.load offset=24 align=4 local.tee 4 i32.ne br_if 0 local.get 2 local.set 5 local.get 3 local.set 4 br 1 end local.get 3 local.get 4 i32.lt_u br_if 1 block local.get 4 br_if 0 i32.const 0 local.set 4 i32.const 1 local.set 5 local.get 3 i32.eqz br_if 1 local.get 2 call 61 br 1 end local.get 2 local.get 3 i32.const 1 local.get 4 call 52 local.tee 5 i32.eqz br_if 2 end local.get 1 i32.const 8 i32.add local.get 5 local.get 4 call 49 local.get 0 local.get 1 i64.load offset=8 align=8 i64.store offset=0 align=4 local.get 1 i32.const 32 i32.add global.set 0 return end i32.const 1049136 call 25 unreachable end local.get 4 i32.const 1 i32.const 0 i32.load offset=1050388 align=4 local.tee 1 i32.const 1 local.get 1 select call_indirect 4 unreachableend我熟悉javascript,但这对我来说是无法理解的。找出如何将其转换为更“友好”的 javascript 的最佳选择是什么?有没有工具可以帮助转换为更好的格式?或者有没有更容易理解的方法?
2 回答

慕盖茨4494581
TA贡献1850条经验 获得超11个赞

慕斯709654
TA贡献1840条经验 获得超5个赞
所以你所拥有的是类似于 WAT 的东西,它是 WASM 文本格式。但是它不是有效的 WAT,所以我不确定你能用它做什么。
如果它是有效的 WAT,您可以使用WebAssembly Binary Toolkit中的 wat2wasm 将 WAT 转换为二进制 WASM,然后使用 wasm2c 将其转换为半可读的 C。
添加回答
举报
0/150
提交
取消