- 浏览: 761646 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
pragma solidity >=0.4.0 <0.9.0; import "hardhat/console.sol"; contract Move { fallback() external { console.log("fallback"); bytes memory _bytes = msg.data; //0x00000008000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d560000000000000000000000000000000000000000000000000000000000000064 console.logBytes(_bytes); uint256 tmp; address addr; uint256 amount; uint32 methodId; assembly { tmp := mload(add(add(_bytes, 0x20), 0)) addr := mload(add(add(_bytes, 0x24), 0))//4+32 amount := mload(add(_bytes, 0x44)) //68 //methodId := mload(add(_bytes, 0x4)) } methodId = uint32(tmp >> 224); console.log("method id",methodId); console.log("addr:",addr); console.log("amount:",amount); } function f() external { address addr1 = 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56; uint256 amount = 100; address(this).call(abi.encodeWithSelector(0x00000008, addr1,amount)); } }
const { expect } = require("chai"); const { ethers } = require("hardhat"); constractName = "Move"; describe("contract", function () { it("test", async function () { const TestContract = await ethers.getContractFactory(constractName); const testContract = await TestContract.deploy(); await testContract.f(); }); });
fallback
0x00000008000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d560000000000000000000000000000000000000000000000000000000000000064
method id 8
addr: 0xe9e7cea3dedca5984780bafc599bd69add087d56
amount: 100
发表评论
-
TypeError:ethers_1.getAddress
2024-04-29 10:45 237package.json 添加:"@nomicfou ... -
solidity
2023-02-25 14:23 12一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 11一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 244一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
Address
2023-02-23 10:54 5// contracts/Box.sol // SPDX ... -
Address
2023-02-23 10:50 207// contracts/Box.sol // SPDX ... -
Beacon
2023-02-20 11:45 220Beacon a.Implementation地址并不存放在P ... -
UUPS
2023-02-17 16:16 252a.Proxy直接把所有的请求都通过delegatecall丢 ... -
Transparent
2023-02-16 15:44 203Transparent: a.如果Proxy合约发现自己被Pr ... -
string转bytes
2023-02-16 11:04 278const data = Buffer.from(''); ... -
hardhat命令
2023-02-13 09:58 3321.前置准备,运行一个新项目 mkdir my-project ... -
multicall
2023-01-31 20:11 199multicall的solidity调用与ethers.js调 ... -
检查是否是721
2023-01-31 15:18 153// SPDX-License-Identifier: M ... -
EVM操作码
2023-01-25 10:33 2902.栈和内存操作码 2.1 POP:取出栈顶元素 2.2 PU ... -
计算合约地址
2023-01-19 11:27 242EVM会根据发送者地址和nonce经过RLP编码后再进行kec ... -
标准修饰符
2023-01-18 17:03 1541.internal:类似c++中的protected,通过J ... -
ABI编码函数
2023-01-17 10:40 3011. abi.encode()returns(bytes):对 ... -
数据位置
2023-01-17 10:24 1751.函数参数包括返回的参数默认是memory 2.局部变量默认 ... -
随机数
2023-01-17 10:06 193https://www.paradigm.xyz/2023/0 ... -
extcodesize
2023-01-16 11:16 282extcodesize取出的byte code长度,若长度大于 ...
相关推荐
运算器移位运算实验是计算机组成原理中一个重要的实践环节,旨在帮助学生深入理解运算器的基本构造和数据处理流程。在这个实验中,学生需要掌握如何使用简单的运算器进行数据传送和移位操作,同时验证移位控制的功能...
计算机组成原理实验报告的核心是理解和应用带移位运算在计算机硬件层面的操作。移位运算在计算机科学中扮演着重要角色,特别是在数据处理和算术运算中。本实验旨在通过设计和实现一个带移位运算的模型机,让学生深入...
计算机组成原理实验五带移位运算模型机的设计与实现 本实验的主要目的是设计和实现带移位运算模型机,熟悉由微程序控制器控制模型机的数据通道,掌握机器指令的使用和编程,学习设计与调试计算机的基本步骤及方法。...
带移位运算模型机的设计与实现 本资源摘要信息旨在对带移位运算模型机的设计与实现进行详细的知识点描述。该模型机由微程序控制器控制,通过设计和实现计算机的基本步骤和方法来掌握机器指令的使用和编程。 一、...
在计算机组成原理中,移位运算是一种基本的算术和逻辑运算,广泛应用于各种计算和数据处理场景。移位运算通常包括左移、右移和循环移位等类型,它们在计算机内部处理二进制数时起着重要作用。在本实验“计算机组成...
### 负数移位运算详解 在计算机科学与编程领域中,移位运算是一个非常重要的概念。本文将深入探讨C语言中的负数移位运算,并通过具体的例子来解释其实现过程。移位运算包括左移(`)和右移(`>>`)两种类型。 ####...
移位运算器是一种重要的数字逻辑电路,主要用于处理二进制数据的移位操作。移位操作在计算机科学和数字电子领域中广泛应用,包括数据处理、算术运算、串行通信等场景。本实验报告主要围绕74LS299芯片进行,这是一种...
实验报告的主题是“带移位运算模型机的设计与实现”,主要涵盖了计算机组成原理中的移位运算和微程序控制器的相关知识。此实验旨在让学生熟悉微程序控制器控制的数据通道,掌握机器指令的使用和编程技巧,以及学习...
本任务书的核心是构建“基本模型机”和“带移位运算的模型机”,旨在帮助学生掌握计算机硬件设计的基础知识,理解数据在计算机中的表示、存储和处理方式,以及指令系统的构造原理。 首先,我们要讨论基本模型机的...
【计算机组成原理】\n\n本实验主要涉及的是计算机组成原理中的一个重要概念——带移位运算的模型机设计与实现。在广工的计算机组成原理实验五中,学生需要掌握微程序控制器控制的模型机数据通道,理解机器指令的使用...
C51之移位运算 C51之移位运算是指在C51单片机中实现移位运算的方法。移位运算是一种基本的位运算,通过将二进制数的每一位向左或向右移动来实现数据的移位。在C51单片机中,可以使用RR、RRC、RL、RLC等指令来实现...
"计算机组成原理之定点数的移位运算" 定点数的移位运算是计算机组成原理中的一种重要运算方式。在本节中,我们将详细讲解定点数的移位运算,包括算数移位、逻辑移位和循环移位等。 一、引子 在学习定点数的移位...
2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程; 3.验证带进位控制的74LS181的功能。 二、实验设备: EL-JY-II型计算机组成原理实验系统一套,排线若干。
"计算机组成原理 移位运算" 本资源概括了计算机组成原理中的移位运算、十进制运算及逻辑运算。移位运算是计算机运算的基础之一,分为逻辑移位、循环移位和算术移位。逻辑移位是指整组数据移位,只有数字位置的变化...
Java的移位运算涉及到整数类型数据的二进制位操作,这对于理解计算机底层运作和优化代码至关重要。移位运算主要包括左移运算符()和右移运算符(>>,>>>)。在Java中,所有的整数类型(除了char类型外)都是有符号...
计算机组成原理中的移位运算是一种基本的数字处理操作,它涉及到二进制数在位级上的移动。在计算机系统中,移位运算被广泛应用于算术运算、位操作以及数据处理等多个领域。本实验报告主要关注逻辑移位和算术移位两种...
计算机组成原理-移位运算 计算机组成原理是计算机科学的基础学科,它研究计算机的硬件结构、工作原理和性能指标。移位运算是计算机运算的基础,它是计算机科学中最基本和最常见的运算操作之一。 移位操作按移位...