前言

上篇我们详细分析了智能合约反汇编后的代码内容,包括多个反汇编指令的含义,数据在栈中的存储方式,并通过上下文关联关系梳理代码逻辑。本篇我们将继续分析上篇遗留的反汇编代码,通过上篇学习我们已对反汇编指令在栈和内存存储的有了一定了解,该篇我们将重点来分析反汇编指令表示的代码逻辑。

反汇编内容

合约源代码

pragma solidity ^0.4.24;

contract Tee {

    uint256 private c;

    function a() public returns (uint256) { self(2); }

    function b() public { c++; }

    function self(uint n) internal returns (uint256) {

        if (n <= 1) { return 1; }

        return n * self(n - 1);
    }
}

上篇文章中,我们对下图中蓝色框中的内容进行了详细分析,本篇我们分析红色框中的内容以及之后的反汇编指令。

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖