常量或字面量原语
| 操作码 | Fift 语法 | 堆栈 | Gas | 描述 | 
|---|---|---|---|---|
| Please enter a search query | ||||
| No results found | ||||
TVM 指令内容列表
常量或字面量原语
整数和布尔常量
| xxxxxxx 操作码 | xxxxxxxxxxxxxxxxxxxxxxxxxxxx Fift 语法 | xxxxxxxxxxxxxxxxx 堆栈 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 描述 | xxxx Gas | 
|---|---|---|---|---|
| 7i | [x] PUSHINT[x] INT | - x | 将整数 x压入栈。-5 <= x <= 10。这里的 i等于x的四个低阶位 (i=x mod 16)。 | 18 | 
| 70 | ZEROFALSE | - 0 | 18 | |
| 71 | ONE | - 1 | 18 | |
| 72 | TWO | - 2 | 18 | |
| 7A | TEN | - 10 | 18 | |
| 7F | TRUE | - -1 | 18 | |
| 80xx | [xx] PUSHINT[xx] INT | - xx | 将整数 xx压入栈。-128 <= xx <= 127。 | 26 | 
| 81xxxx | [xxxx] PUSHINT[xxxx] INT | - xxxx | 将整数 xxxx压入栈。-2^15 <= xx < 2^15。 | 34 | 
| 82lxxx | [xxx] PUSHINT[xxx] INT | - xxx | 将整数 xxx压入栈。细节: 5位的 0 <= l <= 30决定了有符号大端整数xxx的长度n=8l+19。此指令的总长度为 l+4字节或n+13=8l+32位。 | 23 | 
| 83xx | [xx+1] PUSHPOW2 | - 2^(xx+1) | (静默地)推送 2^(xx+1),对于0 <= xx <= 255。2^256是一个NaN。 | 26 | 
| 83FF | PUSHNAN | - NaN | 推送一个 NaN。 | 26 | 
| 84xx | [xx+1] PUSHPOW2DEC | - 2^(xx+1)-1 | 推送 2^(xx+1)-1,对于0 <= xx <= 255。 | 26 | 
| 85xx | [xx+1] PUSHNEGPOW2 | - -2^(xx+1) | 推送 -2^(xx+1),对于0 <= xx <= 255。 | 26 | 
常量切片、continuation、cell和引用
| xxxxxxx 操作码 | xxxxxxxxxxxxxxxxxxxxxxxxxxxx Fift 语法 | xxxxxxxxxxxxxxxxx 堆栈 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 描述 | xxxx Gas | 
|---|---|---|---|---|
| 88 | [ref] PUSHREF | - c | 将引用 ref推送到栈中。细节: 将 cc.code的第一个引用作为 cell 推入栈(并从当前continuation中移除此引用)。 | 18 | 
| 89 | [ref] PUSHREFSLICE | - s | 类似于 PUSHREF,但将cell转换为 切片。 | 118/43 | 
| 8A | [ref] PUSHREFCONT | - cont | 类似于 PUSHREFSLICE,但将cell制作成一个简单的普通 continuation。 | 118/43 | 
| 8Bxsss | [slice] PUSHSLICE[slice] SLICE | - s | 将切片 slice推入栈。细节: 推送 cc.code的 (前缀) 子切片,其由其前8x+4位和零个引用组成(即,基本上是一个位串),其中0 <= x <= 15。假设有一个完成标记,意味着所有尾随零和最后一个二进制一(如果存在)都从这个位串中被移除。 如果原始位串仅由零组成,则会推入一个空切片。 | 22 | 
| 8Crxxssss | [slice] PUSHSLICE[slice] SLICE | - s | 将切片 slice推入栈。细节: 推送 cc.code的 (前缀) 子切片,其由其前1 <= r+1 <= 4个引用和最多前8xx+1位数据组成,其中0 <= xx <= 31。也假设有一个完成标记。 | 25 | 
| 8Drxxsssss | [slice] PUSHSLICE[slice] SLICE | - s | 将切片 slice推入栈。细节: 推送 cc.code的子切片,其由0 <= r <= 4个引用和最多8xx+6位数据组成,其中0 <= xx <= 127。假设有一个完成标记。 | 28 | 
| x{} PUSHSLICEx{ABCD1234} PUSHSLICEb{01101} PUSHSLICE | - s | PUSHSLICE的示例。x{}是一个空切片。x{...}是一个十六进制字面量。b{...}是一个二进制字面量。关于切片字面量的更多信息在这里。 注意,汇编程序可以在某些情况下(例如,如果当前continuation中没有足够的空间)将 PUSHSLICE替换为PUSHREFSLICE。 | ||
| <b x{AB12} s, b> PUSHREF<b x{AB12} s, b> PUSHREFSLICE | - c/s | PUSHREF和PUSHREFSLICE的示例。关于在 fift 中构建cell的更多信息在这里。 | ||
| 8F_rxxcccc | [builder] PUSHCONT[builder] CONT | - c | 从 builder中推送continuation。细节: 推送由 cc.code的前0 <= r <= 3个引用和前0 <= xx <= 127字节制成的简单普通continuationcccc。 | 26 | 
| 9xccc | [builder] PUSHCONT[builder] CONT | - c | 从 builder中推送continuation。细节: 推送一个 x字节的continuation,对于0 <= x <= 15。 | 18 | 
| <{ code }> PUSHCONT<{ code }> CONTCONT:<{ code }> | - c | 用代码 code推送continuation。注意,汇编程序可以在某些情况下(例如,如果当前continuation中没有足够的空间)将 PUSHCONT替换为PUSHREFCONT。 |