从AVM2概述PDF中我遇到了两种类型的堆栈的引用 - Scope Stack和Operand Stack。
1)我假设这是两个不同的内存堆栈,每个堆栈处理不同的东西。还有更多的堆栈吗?
2)pushstring“hello” - 这将推动内存地址的开始,其中“hello”字符串位于Operand Stack上。正确?
3)setlocal 0 - 这将通过弹出它将堆栈(上面)中的值存储到register0中。对?
4)PushScope() - 嗯,docs说堆栈的pop值,将值推到Scope Stack上。为什么呢?
我知道一点NASM,但ABC似乎比那更复杂。特别是我对Scope Stack和多个堆栈的整个概念感到困惑。
答案 0 :(得分:5)
我不是AVM2专家,但这就是我所知道的:
我强烈建议下载Tamarin源并在那里玩反编译器。此外,Yogda看起来非常方便学习:http://www.yogda.com/