Ruka hadi kwenye maudhui makuu
Change page

Misimbo ya operesheni kwa ajili ya EVM

Hili ni toleo lililosasishwa la ukurasa wa marejeleo wa EVM kwenye wolflo/evm-opcodes (inafunguka katika kichupo kipya). Pia imetolewa kutoka kwenye Waraka wa Manjano (inafunguka katika kichupo kipya), Jello Paper (inafunguka katika kichupo kipya), na utekelezaji wa geth (inafunguka katika kichupo kipya). Hii inakusudiwa kuwa marejeleo yanayofikika, lakini si thabiti sana. Ikiwa unataka kuwa na uhakika wa usahihi na kufahamu kila hali ya kipekee, kutumia Jello Paper au utekelezaji wa mteja kunashauriwa.

Unatafuta marejeleo shirikishi? Angalia evm.codes (inafunguka katika kichupo kipya).

Kwa operesheni zenye gharama za gesi zinazobadilika, angalia gas.md (inafunguka katika kichupo kipya).

💡 Kidokezo cha haraka: Ili kutazama mistari mizima, tumia [shift] + scroll kusogeza kwa mlalo kwenye kompyuta ya mezani.

RundoJinaGesiRundo la AwaliRundo LinalotokanaKumbukumbu / HifadhiMaelezo
00STOP0sitisha utekelezaji
01ADD3a, ba + b(u)int256 jumlisha modulo 2**256
02MUL5a, ba * b(u)int256 zidisha modulo 2**256
03SUB3a, ba - b(u)int256 toa modulo 2**256
04DIV5a, ba // buint256 gawanya
05SDIV5a, ba // bint256 gawanya
06MOD5a, ba % buint256 moduli
07SMOD5a, ba % bint256 moduli
08ADDMOD8a, b, N(a + b) % N(u)int256 jumlisha modulo N
09MULMOD8a, b, N(a * b) % N(u)int256 zidisha modulo N
0AEXPA1 (inafunguka katika kichupo kipya)a, ba ** buint256 kipeo modulo 2**256
0BSIGNEXTEND5b, xSIGNEXTEND(x, b)panua ishara (inafunguka katika kichupo kipya) x kutoka baiti (b+1) hadi baiti 32
0C-0Fbatili
10LT3a, ba < buint256 ndogo-kuliko
11GT3a, ba > buint256 kubwa-kuliko
12SLT3a, ba < bint256 ndogo-kuliko
13SGT3a, ba > bint256 kubwa-kuliko
14EQ3a, ba == b(u)int256 usawa
15ISZERO3aa == 0(u)int256 nisifuri
16AND3a, ba && bAND ya kibiti
17OR3a, ba || bOR ya kibiti
18XOR3a, ba ^ bXOR ya kibiti
19NOT3a~aNOT ya kibiti
1ABYTE3i, x(x >> (248 - i * 8)) && 0xFFbaiti ya i ya (u)int256 x, kutoka kushoto
1BSHL3shift, valval << shiftsogeza kushoto
1CSHR3shift, valval >> shiftsogeza kimantiki kulia
1DSAR3shift, valval >> shiftsogeza kihesabu kulia
1E-1Fbatili
20KECCAK256A2 (inafunguka katika kichupo kipya)ost, lenkeccak256(mem[ost:ost+len-1])keccak256
21-2Fbatili
30ADDRESS2.address(this)anwani ya mkataba unaotekelezwa
31BALANCEA5 (inafunguka katika kichupo kipya)addraddr.balancesalio, katika Wei
32ORIGIN2.tx.originanwani iliyoanzisha muamala
33CALLER2.msg.senderanwani ya mtumaji wa ujumbe
34CALLVALUE2.msg.valuethamani ya ujumbe, katika Wei
35CALLDATALOAD3idxmsg.data[idx:idx+32]soma neno kutoka kwenye data ya ujumbe kwenye faharisi idx
36CALLDATASIZE2.len(msg.data)urefu wa data ya ujumbe, katika baiti
37CALLDATACOPYA3 (inafunguka katika kichupo kipya)dstOst, ost, len.mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1]nakili data ya ujumbe
38CODESIZE2.len(this.code)urefu wa msimbo wa mkataba unaotekelezwa, katika baiti
39CODECOPYA3 (inafunguka katika kichupo kipya)dstOst, ost, len.mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1]
3AGASPRICE2.tx.gaspricebei ya gesi ya muamala, katika Wei kwa kila uniti ya gesi ** (inafunguka katika kichupo kipya)
3BEXTCODESIZEA5 (inafunguka katika kichupo kipya)addrlen(addr.code)ukubwa wa msimbo kwenye anwani, katika baiti
3CEXTCODECOPYA4 (inafunguka katika kichupo kipya)addr, dstOst, ost, len.mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1]nakili msimbo kutoka addr
3DRETURNDATASIZE2.sizeukubwa wa data iliyorudishwa kutoka kwenye wito wa mwisho wa nje, katika baiti
3ERETURNDATACOPYA3 (inafunguka katika kichupo kipya)dstOst, ost, len.mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1]nakili data iliyorudishwa kutoka kwenye wito wa mwisho wa nje
3FEXTCODEHASHA5 (inafunguka katika kichupo kipya)addrhashheshi = addr.exists ? keccak256(addr.code) : 0
40BLOCKHASH20blockNumblockHash(blockNum)
41COINBASE2.block.coinbaseanwani ya mpendekezaji wa kitalu cha sasa
42TIMESTAMP2.block.timestampmuhuri wa muda wa kitalu cha sasa
43NUMBER2.block.numbernambari ya kitalu cha sasa
44PREVRANDAO2.randomness beaconkinara cha unasibu
45GASLIMIT2.block.gaslimitkikomo cha gesi cha kitalu cha sasa
46CHAINID2.chain_idsukuma kitambulisho cha mnyororo (inafunguka katika kichupo kipya) cha sasa kwenye rundo
47SELFBALANCE5.address(this).balancesalio la mkataba unaotekelezwa, katika Wei
48BASEFEE2.block.basefeeada ya msingi ya kitalu cha sasa
49BLOBHASH3idxtx.blob_versioned_hashes[idx]EIP-4844 (inafunguka katika kichupo kipya)
4ABLOBBASEFEE2.block.blobbasefeeada ya msingi ya blobu ya kitalu cha sasa (EIP-7516 (inafunguka katika kichupo kipya))
4B-4Fbatili
50POP2_anon.ondoa kipengee kutoka juu ya rundo na ukitupe
51MLOAD3* (inafunguka katika kichupo kipya)ostmem[ost:ost+32]soma neno kutoka kwenye kumbukumbu kwenye ofseti ost
52MSTORE3* (inafunguka katika kichupo kipya)ost, val.mem[ost:ost+32] := valandika neno kwenye kumbukumbu
53MSTORE83* (inafunguka katika kichupo kipya)ost, val.mem[ost] := val && 0xFFandika baiti moja kwenye kumbukumbu
54SLOADA6 (inafunguka katika kichupo kipya)keystorage[key]soma neno kutoka kwenye hifadhi
55SSTOREA7 (inafunguka katika kichupo kipya)key, val.storage[key] := valandika neno kwenye hifadhi
56JUMP8dst.$pc := dst weka alama kwamba pc inakabidhiwa tu ikiwa dst ni jumpdest halali
57JUMPI10dst, condition.$pc := condition ? dst : $pc + 1
58PC2.$pckihesabu programu
59MSIZE2.len(mem)ukubwa wa kumbukumbu katika muktadha wa sasa wa utekelezaji, katika baiti
5AGAS2.gasRemaining
5BJUMPDEST1weka alama ya mwisho halali wa kurukamwisho halali wa kuruka kwa mfano mwisho wa kuruka ambao hauko ndani ya data ya kusukuma
5CTLOAD100keytstorage[key]soma neno kutoka kwenye hifadhi ya muda (EIP-1153 (inafunguka katika kichupo kipya))
5DTSTORE100key, val.tstorage[key] := valandika neno kwenye hifadhi ya muda (EIP-1153 (inafunguka katika kichupo kipya))
5EMCOPY3+3*words+A0 (inafunguka katika kichupo kipya)dstOst, ost, len.mem[dstOst] := mem[ost:ost+len]nakili kumbukumbu kutoka eneo moja hadi jingine (EIP-5656 (inafunguka katika kichupo kipya))
5FPUSH02.uint8sukuma thamani isiyobadilika 0 kwenye rundo
60PUSH13.uint8sukuma thamani ya baiti 1 kwenye rundo
61PUSH23.uint16sukuma thamani ya baiti 2 kwenye rundo
62PUSH33.uint24sukuma thamani ya baiti 3 kwenye rundo
63PUSH43.uint32sukuma thamani ya baiti 4 kwenye rundo
64PUSH53.uint40sukuma thamani ya baiti 5 kwenye rundo
65PUSH63.uint48sukuma thamani ya baiti 6 kwenye rundo
66PUSH73.uint56sukuma thamani ya baiti 7 kwenye rundo
67PUSH83.uint64sukuma thamani ya baiti 8 kwenye rundo
68PUSH93.uint72sukuma thamani ya baiti 9 kwenye rundo
69PUSH103.uint80sukuma thamani ya baiti 10 kwenye rundo
6APUSH113.uint88sukuma thamani ya baiti 11 kwenye rundo
6BPUSH123.uint96sukuma thamani ya baiti 12 kwenye rundo
6CPUSH133.uint104sukuma thamani ya baiti 13 kwenye rundo
6DPUSH143.uint112sukuma thamani ya baiti 14 kwenye rundo
6EPUSH153.uint120sukuma thamani ya baiti 15 kwenye rundo
6FPUSH163.uint128sukuma thamani ya baiti 16 kwenye rundo
70PUSH173.uint136sukuma thamani ya baiti 17 kwenye rundo
71PUSH183.uint144sukuma thamani ya baiti 18 kwenye rundo
72PUSH193.uint152sukuma thamani ya baiti 19 kwenye rundo
73PUSH203.uint160sukuma thamani ya baiti 20 kwenye rundo
74PUSH213.uint168sukuma thamani ya baiti 21 kwenye rundo
75PUSH223.uint176sukuma thamani ya baiti 22 kwenye rundo
76PUSH233.uint184sukuma thamani ya baiti 23 kwenye rundo
77PUSH243.uint192sukuma thamani ya baiti 24 kwenye rundo
78PUSH253.uint200sukuma thamani ya baiti 25 kwenye rundo
79PUSH263.uint208sukuma thamani ya baiti 26 kwenye rundo
7APUSH273.uint216sukuma thamani ya baiti 27 kwenye rundo
7BPUSH283.uint224sukuma thamani ya baiti 28 kwenye rundo
7CPUSH293.uint232sukuma thamani ya baiti 29 kwenye rundo
7DPUSH303.uint240sukuma thamani ya baiti 30 kwenye rundo
7EPUSH313.uint248sukuma thamani ya baiti 31 kwenye rundo
7FPUSH323.uint256sukuma thamani ya baiti 32 kwenye rundo
80DUP13aa, anakili thamani ya 1 kwenye rundo
81DUP23_, aa, _, anakili thamani ya 2 kwenye rundo
82DUP33_, _, aa, _, _, anakili thamani ya 3 kwenye rundo
83DUP43_, _, _, aa, _, _, _, anakili thamani ya 4 kwenye rundo
84DUP53..., aa, ..., anakili thamani ya 5 kwenye rundo
85DUP63..., aa, ..., anakili thamani ya 6 kwenye rundo
86DUP73..., aa, ..., anakili thamani ya 7 kwenye rundo
87DUP83..., aa, ..., anakili thamani ya 8 kwenye rundo
88DUP93..., aa, ..., anakili thamani ya 9 kwenye rundo
89DUP103..., aa, ..., anakili thamani ya 10 kwenye rundo
8ADUP113..., aa, ..., anakili thamani ya 11 kwenye rundo
8BDUP123..., aa, ..., anakili thamani ya 12 kwenye rundo
8CDUP133..., aa, ..., anakili thamani ya 13 kwenye rundo
8DDUP143..., aa, ..., anakili thamani ya 14 kwenye rundo
8EDUP153..., aa, ..., anakili thamani ya 15 kwenye rundo
8FDUP163..., aa, ..., anakili thamani ya 16 kwenye rundo
90SWAP13a, bb, a
91SWAP23a, _, bb, _, a
92SWAP33a, _, _, bb, _, _, a
93SWAP43a, _, _, _, bb, _, _, _, a
94SWAP53a, ..., bb, ..., a
95SWAP63a, ..., bb, ..., a
96SWAP73a, ..., bb, ..., a
97SWAP83a, ..., bb, ..., a
98SWAP93a, ..., bb, ..., a
99SWAP103a, ..., bb, ..., a
9ASWAP113a, ..., bb, ..., a
9BSWAP123a, ..., bb, ..., a
9CSWAP133a, ..., bb, ..., a
9DSWAP143a, ..., bb, ..., a
9ESWAP153a, ..., bb, ..., a
9FSWAP163a, ..., bb, ..., a
A0LOG0A8 (inafunguka katika kichupo kipya)ost, len.LOG0(memory[ost:ost+len-1])
A1LOG1A8 (inafunguka katika kichupo kipya)ost, len, topic0.LOG1(memory[ost:ost+len-1], topic0)
A2LOG2A8 (inafunguka katika kichupo kipya)ost, len, topic0, topic1.LOG2(memory[ost:ost+len-1], topic0, topic1)
A3LOG3A8 (inafunguka katika kichupo kipya)ost, len, topic0, topic1, topic2.LOG3(memory[ost:ost+len-1], topic0, topic1, topic2)
A4LOG4A8 (inafunguka katika kichupo kipya)ost, len, topic0, topic1, topic2, topic3.LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3)
A5-EFbatili
F0CREATEA9 (inafunguka katika kichupo kipya)val, ost, lenaddraddr = keccak256(rlp([address(this), this.nonce]))
F1CALLAA (inafunguka katika kichupo kipya)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F2CALLCODEAA (inafunguka katika kichupo kipya)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] = returndatasawa na DELEGATECALL, lakini haisambazi msg.sender na msg.value ya asili
F3RETURN0* (inafunguka katika kichupo kipya)ost, len.return mem[ost:ost+len-1]
F4DELEGATECALLAA (inafunguka katika kichupo kipya)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F5CREATE2A9 (inafunguka katika kichupo kipya)val, ost, len, saltaddraddr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:]
F6-F9batili
FASTATICCALLAA (inafunguka katika kichupo kipya)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
FB-FCbatili
FDREVERT0* (inafunguka katika kichupo kipya)ost, len.revert(mem[ost:ost+len-1])
FEINVALIDAF (inafunguka katika kichupo kipya)msimbo wa operesheni ulioteuliwa kuwa batili - EIP-141 (inafunguka katika kichupo kipya)
FFSELFDESTRUCTAB (inafunguka katika kichupo kipya)addr.hutuma ETH zote kwa addr; ikitekelezwa katika muamala sawa na mkataba ulipoundwa inaharibu mkataba