Assembly 为什么即使包含JUMPDEST也不起作用,也要跳转到指令中?

Assembly 为什么即使包含JUMPDEST也不起作用,也要跳转到指令中?,assembly,ethereum,opcode,evm,stack-machine,Assembly,Ethereum,Opcode,Evm,Stack Machine,这是我的全部计划。其背后的原因是以太坊上的程序越大,加载它的成本就越高(因为每字节的气体成本非常高) 所以我跳到了PUSH3 0x5b6000,但是如果我们反汇编0x5b6000,那么它意味着 JUMPDEST PUSH1 0x00 既然evm操作码编码是(所有指令在PUSHxx旁边都有一个字节长),而我正在跳入一个JUMPDEST,为什么会失败呢 黄皮书中规定,前往JUMPDEST并不是有效跳转目的地的唯一要求?请注意,没有程序或工具用于组装完全用以太坊汇编编写的程序。它需要完全用十六进制编

这是我的全部计划。其背后的原因是以太坊上的程序越大,加载它的成本就越高(因为每字节的气体成本非常高)

所以我跳到了
PUSH3 0x5b6000
,但是如果我们反汇编
0x5b6000
,那么它意味着

JUMPDEST
PUSH1 0x00
既然evm操作码编码是(所有指令在PUSHxx旁边都有一个字节长),而我正在跳入一个
JUMPDEST
,为什么会失败呢


黄皮书中规定,前往
JUMPDEST
并不是有效跳转目的地的唯一要求?

请注意,没有程序或工具用于组装完全用以太坊汇编编写的程序。它需要完全用十六进制编辑器手工完成。为什么要进行下一票?请注意,这种跳转到指令中间的方式,虽然在过去的“大师”中更为常见,但这让任何人都很难理解发生了什么。然而,典型的问题是适用的。你试过在调试器中运行它吗?@ThomasJager然后它的行为就像问题的事务链接中描述的那样,它是
无效的跳转目标
,没有说明它无效的原因。请注意,与传统云计算相比,以太坊的费用非常高,这是程序尽可能短的原因。请注意,没有程序或工具用于汇编完全用以太坊汇编编写的程序。它需要完全用十六进制编辑器手工完成。为什么要进行下一票?请注意,这种跳转到指令中间的方式,虽然在过去的“大师”中更为常见,但这让任何人都很难理解发生了什么。然而,典型的问题是适用的。你试过在调试器中运行它吗?@ThomasJager然后它的行为就像问题的事务链接中描述的那样,它是
无效的跳转目标
,没有说明它无效的原因。请注意,与传统云计算相比,以太坊的费用非常高,这也是程序尽可能短的原因。
JUMPDEST
PUSH1 0x00