Ruka kwenda kwenye maudhui makuu
Change page

Opcodes za EVM

Ukurasa ulihaririwa mwisho: 11 Septemba 2025

Muhtasari

Hili ni toleo lililosasishwa la ukurasa wa marejeleo wa EVM katika wolflo/evm-opcodes (opens in a new tab). Pia imetolewa kutoka kwa Karatasi ya Njano (opens in a new tab), Karatasi ya Jello (opens in a new tab), na utekelezaji wa geth (opens in a new tab). Hii imekusudiwa kuwa rejeleo linalofikika, lakini sio kali hasa. Ikiwa unataka kuwa na uhakika wa usahihi na kufahamu kila kisa cha pembeni, kutumia Karatasi ya Jello au utekelezaji wa mteja kunashauriwa.

Unatafuta rejeleo shirikishi? Angalia evm.codes (opens in a new tab).

Kwa operesheni zenye gharama za gesi zinazobadilika, tazama gas.md (opens in a new tab).

💡 Dokezo la haraka: Ili kuona mistari yote, tumia [shift] + sogeza ili kusogeza mlalo kwenye kompyuta ya mezani.

RafuJinaGesiRafu ya AwaliRafu ya MatokeoMem / GhalaMaelezo
00STOP0sitisha utekelezaji
01ADD3a, ba + bkujumlisha kwa (u)int256 modulo 2**256
02MUL5a, ba * bkuzidisha kwa (u)int256 modulo 2**256
03SUB3a, ba - bkutoa kwa (u)int256 modulo 2**256
04DIV5a, ba // bkugawanya kwa uint256
05SDIV5a, ba // bkugawanya kwa int256
06MOD5a, ba % bmodulo ya uint256
07SMOD5a, ba % bmodulo ya int256
08ADDMOD8a, b, N(a + b) % Nkujumlisha kwa (u)int256 modulo N
09MULMOD8a, b, N(a * b) % Nkuzidisha kwa (u)int256 modulo N
0AEXPA1 (opens in a new tab)a, ba ** bkipeo cha uint256 modulo 2**256
0BSIGNEXTEND5b, xSIGNEXTEND(x, b)panua ishara (opens in a new tab) x kutoka baiti (b+1) hadi baiti 32
0C-0Fsio halali
10LT3a, ba < buint256 chini ya
11GT3a, ba > buint256 kubwa kuliko
12SLT3a, ba < bint256 chini ya
13SGT3a, ba > bint256 kubwa kuliko
14EQ3a, ba == busawa wa (u)int256
15ISZERO3aa == 0(u)int256 ni sifuri
16AND3a, ba && bbitwise AND
17OR3a, b`a \\b`
18XOR3a, ba ^ bbitwise XOR
19NOT3a~abitwise NOT
1ABYTE3i, x(x >> (248 - i * 8)) && 0xFFbaiti ya i ya (u)int256 x, kutoka kushoto
1BSHL3shift, valval << shiftsogeza kushoto
1CSHR3shift, valval >> shiftsogeza kulia kimantiki
1DSAR3shift, valval >> shiftsogeza kulia kihesabu
1E-1Fsio halali
20KECCAK256A2 (opens in a new tab)ost, lenkeccak256(mem[ost:ost+len-1])keccak256
21-2Fsio halali
30ADDRESS2.anwani(this)anwani ya mkataba unaotekelezwa
31BALANCEA5 (opens in a new tab)addraddr.saliosalio, katika wei
32ORIGIN2.tx.originanwani iliyoanzisha tx
33CALLER2.msg.senderanwani ya mtumaji wa msg
34CALLVALUE2.msg.valuethamani ya msg, katika wei
35CALLDATALOAD3idxmsg.data[idx:idx+32]soma neno kutoka data ya msg kwenye faharasa idx
36CALLDATASIZE2.len(msg.data)urefu wa data ya msg, katika baiti
37CALLDATACOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1]nakili data ya msg
38CODESIZE2.len(this.msimbo)urefu wa msimbo wa mkataba unaotekelezwa, katika baiti
39CODECOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := this.msimbo[ost:ost+len-1]nakili bytecode ya mkataba unaotekelezwa
3AGASPRICE2.tx.gaspricebei ya gesi ya tx, katika wei kwa kila kitengo cha gesi ** (opens in a new tab)
3BEXTCODESIZEA5 (opens in a new tab)addrlen(addr.msimbo)ukubwa wa msimbo katika anwani, katika baiti
3CEXTCODECOPYA4 (opens in a new tab)addr, dstOst, ost, len.mem[dstOst:dstOst+len-1] := addr.msimbo[ost:ost+len-1]nakili msimbo kutoka addr
3DRETURNDATASIZE2.ukubwaukubwa wa data iliyorejeshwa kutoka wito wa mwisho wa nje, katika baiti
3ERETURNDATACOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1]nakili data iliyorejeshwa kutoka wito wa mwisho wa nje
3FEXTCODEHASHA5 (opens in a new tab)addrhashihashi = addr.exists ? keccak256(addr.msimbo) : 0
40BLOCKHASH20blockNumblockHash(blockNum)
41COINBASE2.block.coinbaseanwani ya mpendekezaji wa bloku ya sasa
42TIMESTAMP2.block.timestampmhuri wa muda wa bloku ya sasa
43NUMBER2.block.numbernambari ya bloku ya sasa
44PREVRANDAO2.randomness beaconrandomness beacon
45GASLIMIT2.block.gaslimitkikomo cha gesi cha bloku ya sasa
46CHAINID2.chain_idsukuma id ya mnyororo (opens in a new tab) ya sasa kwenye rafu
47SELFBALANCE5.anwani(this).saliosalio la mkataba unaotekelezwa, katika wei
48BASEFEE2.block.basefeeada ya msingi ya bloku ya sasa
49BLOBHASH3idxtx.blob_versioned_hashes[idx]EIP-4844 (opens in a new tab)
4ABLOBBASEFEE2.block.blobbasefeeada ya msingi ya blob ya bloku ya sasa (EIP-7516 (opens in a new tab))
4B-4Fsio halali
50POP2_anon.ondoa kipengee kutoka juu ya rafu na uitupe
51MLOAD3* (opens in a new tab)ostmem[ost:ost+32]soma neno kutoka kwenye kumbukumbu kwa offset ost
52MSTORE3* (opens in a new tab)ost, val.mem[ost:ost+32] := valandika neno kwenye kumbukumbu
53MSTORE83* (opens in a new tab)ost, val.mem[ost] := val && 0xFFandika baiti moja kwenye kumbukumbu
54SLOADA6 (opens in a new tab)ufunguoghala[ufunguo]soma neno kutoka kwenye ghala
55SSTOREA7 (opens in a new tab)ufunguo, val.ghala[ufunguo] := valandika neno kwenye ghala
56JUMP8dst.$pc := dst weka alama kuwa pc inapewa tu ikiwa dst ni jumpdest halali
57JUMPI10dst, sharti.$pc := sharti ? dst : $pc + 1
58PC2.$pckihesabu cha programu
59MSIZE2.len(mem)ukubwa wa kumbukumbu katika muktadha wa sasa wa utekelezaji, katika baiti
5AGAS2.gesiIliyobaki
5BJUMPDEST1weka alama ya eneo halali la kurukaeneo halali la kuruka kwa mfano eneo la kuruka sio ndani ya data ya kusukuma
5CTLOAD100ufunguotstorage[ufunguo]soma neno kutoka kwenye ghala la muda (EIP-1153 (opens in a new tab))
5DTSTORE100ufunguo, val.tstorage[ufunguo] := valandika neno kwenye ghala la muda (EIP-1153 (opens in a new tab))
5EMCOPY3+3*words+A0 (opens in a new tab)dstOst, ost, len.mem[dstOst] := mem[ost:ost+len]nakili kumbukumbu kutoka eneo moja hadi jingine (EIP-5656 (opens in a new tab))
5FPUSH02.uint8sukuma thamani ya kudumu 0 kwenye rafu
60PUSH13.uint8sukuma thamani ya baiti-1 kwenye rafu
61PUSH23.uint16sukuma thamani ya baiti-2 kwenye rafu
62PUSH33.uint24sukuma thamani ya baiti-3 kwenye rafu
63PUSH43.uint32sukuma thamani ya baiti-4 kwenye rafu
64PUSH53.uint40sukuma thamani ya baiti-5 kwenye rafu
65PUSH63.uint48sukuma thamani ya baiti-6 kwenye rafu
66PUSH73.uint56sukuma thamani ya baiti-7 kwenye rafu
67PUSH83.uint64sukuma thamani ya baiti-8 kwenye rafu
68PUSH93.uint72sukuma thamani ya baiti-9 kwenye rafu
69PUSH103.uint80sukuma thamani ya baiti-10 kwenye rafu
6APUSH113.uint88sukuma thamani ya baiti-11 kwenye rafu
6BPUSH123.uint96sukuma thamani ya baiti-12 kwenye rafu
6CPUSH133.uint104sukuma thamani ya baiti-13 kwenye rafu
6DPUSH143.uint112sukuma thamani ya baiti-14 kwenye rafu
6EPUSH153.uint120sukuma thamani ya baiti-15 kwenye rafu
6FPUSH163.uint128sukuma thamani ya baiti-16 kwenye rafu
70PUSH173.uint136sukuma thamani ya baiti-17 kwenye rafu
71PUSH183.uint144sukuma thamani ya baiti-18 kwenye rafu
72PUSH193.uint152sukuma thamani ya baiti-19 kwenye rafu
73PUSH203.uint160sukuma thamani ya baiti-20 kwenye rafu
74PUSH213.uint168sukuma thamani ya baiti-21 kwenye rafu
75PUSH223.uint176sukuma thamani ya baiti-22 kwenye rafu
76PUSH233.uint184sukuma thamani ya baiti-23 kwenye rafu
77PUSH243.uint192sukuma thamani ya baiti-24 kwenye rafu
78PUSH253.uint200sukuma thamani ya baiti-25 kwenye rafu
79PUSH263.uint208sukuma thamani ya baiti-26 kwenye rafu
7APUSH273.uint216sukuma thamani ya baiti-27 kwenye rafu
7BPUSH283.uint224sukuma thamani ya baiti-28 kwenye rafu
7CPUSH293.uint232sukuma thamani ya baiti-29 kwenye rafu
7DPUSH303.uint240sukuma thamani ya baiti-30 kwenye rafu
7EPUSH313.uint248sukuma thamani ya baiti-31 kwenye rafu
7FPUSH323.uint256sukuma thamani ya baiti-32 kwenye rafu
80DUP13aa, anakili thamani ya 1 kwenye rafu
81DUP23_, aa, _, anakili thamani ya 2 kwenye rafu
82DUP33_, _, aa, _, _, anakili thamani ya 3 kwenye rafu
83DUP43_, _, _, aa, _, _, _, anakili thamani ya 4 kwenye rafu
84DUP53..., aa, ..., anakili thamani ya 5 kwenye rafu
85DUP63..., aa, ..., anakili thamani ya 6 kwenye rafu
86DUP73..., aa, ..., anakili thamani ya 7 kwenye rafu
87DUP83..., aa, ..., anakili thamani ya 8 kwenye rafu
88DUP93..., aa, ..., anakili thamani ya 9 kwenye rafu
89DUP103..., aa, ..., anakili thamani ya 10 kwenye rafu
8ADUP113..., aa, ..., anakili thamani ya 11 kwenye rafu
8BDUP123..., aa, ..., anakili thamani ya 12 kwenye rafu
8CDUP133..., aa, ..., anakili thamani ya 13 kwenye rafu
8DDUP143..., aa, ..., anakili thamani ya 14 kwenye rafu
8EDUP153..., aa, ..., anakili thamani ya 15 kwenye rafu
8FDUP163..., aa, ..., anakili thamani ya 16 kwenye rafu
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 (opens in a new tab)ost, len.LOG0(kumbukumbu[ost:ost+len-1])
A1LOG1A8 (opens in a new tab)ost, len, topic0.LOG1(kumbukumbu[ost:ost+len-1], topic0)
A2LOG2A8 (opens in a new tab)ost, len, topic0, topic1.LOG2(kumbukumbu[ost:ost+len-1], topic0, topic1)
A3LOG3A8 (opens in a new tab)ost, len, topic0, topic1, topic2.LOG3(kumbukumbu[ost:ost+len-1], topic0, topic1, topic2)
A4LOG4A8 (opens in a new tab)ost, len, topic0, topic1, topic2, topic3.LOG4(kumbukumbu[ost:ost+len-1], topic0, topic1, topic2, topic3)
A5-EFsio halali
F0CREATEA9 (opens in a new tab)val, ost, lenaddranwani = keccak256(rlp([anwani(this), this.nonce]))
F1CALLAA (opens in a new tab)gesi, addr, val, argOst, argLen, retOst, retLenmafanikiomem[retOst:retOst+retLen-1] := returndata
F2CALLCODEAA (opens in a new tab)gesi, addr, val, argOst, argLen, retOst, retLenmafanikiomem[retOst:retOst+retLen-1] = returndatasawa na DELEGATECALL, lakini haisambazi msg.sender na msg.value asili
F3RETURN0* (opens in a new tab)ost, len.rejesha mem[ost:ost+len-1]
F4DELEGATECALLAA (opens in a new tab)gesi, addr, argOst, argLen, retOst, retLenmafanikiomem[retOst:retOst+retLen-1] := returndata
F5CREATE2A9 (opens in a new tab)val, ost, len, saltaddranwani = keccak256(0xff ++ anwani(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:]
F6-F9sio halali
FASTATICCALLAA (opens in a new tab)gesi, addr, argOst, argLen, retOst, retLenmafanikiomem[retOst:retOst+retLen-1] := returndata
FB-FCsio halali
FDREVERT0* (opens in a new tab)ost, len.rejesha(mem[ost:ost+len-1])
FEINVALIDAF (opens in a new tab)opcode batili iliyoteuliwa - EIP-141 (opens in a new tab)
FFSELFDESTRUCTAB (opens in a new tab)addr.hutuma ETH zote kwa addr; ikiwa itatekelezwa katika muamala sawa na ule mkataba ulipoundwa, inaharibu mkataba

Je! makala haya yamekusaidia?