跳到主要内容

调试与代码页原语

FE 开头的操作码保留给调试原语使用。这些原语具有已知的固定操作长度,并且作为(多字节)NOP 操作行为。

然而,当在启用调试模式的 TVM 实例中调用时,这些原语可以产生特定输出到 TVM 实例的文本调试日志中,不影响 TVM 状态。

DEBUGDEBUGSTR 是两个调试原语,它们涵盖了所有以 FE 开头的操作码。当调试启用时,这里列出的其他原语具有其指定的效果。当调试禁用时,它们表现为 NOP

操作码Fift 语法堆栈Gas描述
Please enter a search query
No results found

调试原语

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
FEnn{nn} DEBUG-0 <= nn < 24026
FEFnssss{string} DEBUGSTR
{string} {x} DEBUGSTRI
-0 <= n < 16ssss 的长度为 n+1 字节。
{string} 是一个字符串字面量
DEBUGSTR: ssss 是给定的字符串。
DEBUGSTRI: ssss 是由一个字节的整数 0 <= x <= 255 加上给定字符串组成。
26
FE00DUMPSTK-转储堆栈(最多顶部 255 个值)并显示总堆栈深度。26
FE2is[i] DUMP-转储 s[i]26

代码页原语

xxxxxxx
操作码
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Fift 语法
xxxxxxxxxxxxxxxxx
堆栈
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
描述
xxxx
Gas
FFnn[nn] SETCP-选择 TVM 代码页 0 <= nn < 240。如果不支持代码页,则抛出无效的操作码异常。26
FF00SETCP0-选择本文档描述的 TVM(测试)代码页零。26
FFFz[z-16] SETCP-选择 TVM 代码页 z-16,适用于 1 <= z <= 15。负代码页 -13...-1 保留用于验证其他代码页中 TVM 运行所需的限制性 TVM 版本。负代码页 -14 保留用于实验性代码页,不一定在不同 TVM 实现之间兼容,并且应在 TVM 的生产版本中禁用。26
FFF0SETCPXc - 选择通过栈顶传入的代码页 c-2^15 <= c < 2^1526

TVM 指令内容列表