在 AVM2 概述 PDF 中,我遇到了对两种类型堆栈的引用 - 范围堆栈和操作数堆栈。
1)我假设这是两个不同的内存堆栈,每个处理不同的事情。还有更多的堆栈吗?
2) pushstring "hello" - 这会将 "hello" 字符串所在的内存地址的起始地址推送到操作数堆栈上。正确的?
3) setlocal 0 - 这会将堆栈(上图)中的值通过弹出来存储到 register0 中。正确的?
4)PushScope() - 嗯,文档说堆栈的弹出值,将值推送到范围堆栈上。为什么?
我知道一点 NASM,但 ABC 似乎比这更复杂。特别是我对范围堆栈和多个堆栈的整个概念感到困惑。