似乎块和循环可以互为同义词
block $loop
foo
br $loop
end
这里的分支指令会将控制转移到最后,就像“中断”一样。
在循环的情况下,
loop $loop
foo
br $loop
end
这里控制权转移到开头
这很令人困惑,因为我可以通过删除“br”将两者写成同义词,并且从我所见,它们都可以作为带有“break”和“continue”的正常循环。那么,什么时候应该使用哪一个,这种设计选择背后的原因是什么?它是否试图解决其他 ISA 的特定问题?
我找到了这个帖子 WebAssembly 规范中的“块”和“循环”有什么区别? 讨论了向前/向后跳线,但我仍然感到困惑。关于他们的用例的简单解释会非常好!