何时在 webassembly 中使用块或循环?

问题描述 投票:0回答:0

似乎块和循环可以互为同义词

block $loop
   foo
   br $loop
end

这里的分支指令会将控制转移到最后,就像“中断”一样。

在循环的情况下,

loop $loop
   foo
   br $loop
end

这里控制权转移到开头

这很令人困惑,因为我可以通过删除“br”将两者写成同义词,并且从我所见,它们都可以作为带有“break”和“continue”的正常循环。那么,什么时候应该使用哪一个,这种设计选择背后的原因是什么?它是否试图解决其他 ISA 的特定问题?

我找到了这个帖子 WebAssembly 规范中的“块”和“循环”有什么区别? 讨论了向前/向后跳线,但我仍然感到困惑。关于他们的用例的简单解释会非常好!

webassembly instruction-set
© www.soinside.com 2019 - 2024. All rights reserved.