ప్రధాన కంటెంట్‌కి స్కిప్ చేయండి
Change page

EVM కోసం ఆప్‌కోడ్‌లు

పేజీ చివరి అప్‌డేట్: 11 సెప్టెంబర్, 2025

అవలోకనం

ఇది wolflo/evm-opcodes (opens in a new tab) వద్ద EVM సూచన పేజీకి నవీకరించబడిన సంస్కరణ. Yellow Paper (opens in a new tab), Jello Paper (opens in a new tab), మరియు geth (opens in a new tab) అమలు నుండి కూడా తీసుకోబడింది. ఇది ప్రాప్తి చేయగల సూచనగా ఉద్దేశించబడింది, కానీ ఇది ప్రత్యేకంగా కఠినమైనది కాదు. మీరు ఖచ్చితత్వం గురించి ఖచ్చితంగా తెలుసుకోవాలనుకుంటే మరియు ప్రతి అంచు కేసు గురించి తెలుసుకోవాలనుకుంటే, జెల్లో పేపర్ లేదా క్లయింట్ అమలు చేయడం మంచిది.

ఇంటరాక్టివ్ సూచన కోసం వెతుకుతున్నారా? evm.codes (opens in a new tab) ని చూడండి.

డైనమిక్ గ్యాస్ ఖర్చులతో కూడిన ఆపరేషన్ల కోసం, gas.md (opens in a new tab)ని చూడండి.

💡 త్వరిత చిట్కా: మొత్తం లైన్‌లను వీక్షించడానికి, డెస్క్‌టాప్‌లో అడ్డంగా స్క్రోల్ చేయడానికి [shift] + scrollని ఉపయోగించండి.

స్టాక్పేరుగ్యాస్ప్రారంభ స్టాక్ఫలిత స్టాక్మెమ్ / నిల్వగమనికలు
00STOP0అమలును నిలిపివేస్తుంది
01ADD3a, ba + b(u)int256 సంకలనం మాడ్యులో 2**256
02MUL5a, ba * b(u)int256 గుణకారం మాడ్యులో 2**256
03SUB3a, ba - b(u)int256 వ్యవకలనం మాడ్యులో 2**256
04DIV5a, ba // buint256 భాగహారం
05SDIV5a, ba // bint256 భాగహారం
06MOD5a, ba % buint256 మాడ్యులస్
07SMOD5a, ba % bint256 మాడ్యులస్
08ADDMOD8a, b, N(a + b) % N(u)int256 సంకలనం మాడ్యులో N
09MULMOD8a, b, N(a * b) % N(u)int256 గుణకారం మాడ్యులో N
0AEXPA1 (opens in a new tab)a, ba ** buint256 ఘాతాంకం మాడ్యులో 2**256
0BSIGNEXTEND5b, xSIGNEXTEND(x, b)x ని (b+1) బైట్ల నుండి 32 బైట్లకు సైన్ విస్తరించండి (opens in a new tab)
0C-0Fచెల్లనిది
10LT3a, ba < buint256 కంటే-తక్కువ
11GT3a, ba > buint256 కంటే-ఎక్కువ
12SLT3a, ba < bint256 కంటే-తక్కువ
13SGT3a, ba > bint256 కంటే-ఎక్కువ
14EQ3a, ba == b(u)int256 సమానత్వం
15ISZERO3aa == 0(u)int256 సున్నా అయితే
16AND3a, ba && bబిట్‌వైజ్ AND
17OR3a, b`a \\b`
18XOR3a, ba ^ bబిట్‌వైజ్ XOR
19NOT3a~aబిట్‌వైజ్ NOT
1ABYTE3i, x(x >> (248 - i * 8)) && 0xFFఎడమ నుండి (u)int256 x యొక్క iవ బైట్
1BSHL3shift, valval << shiftఎడమకు షిఫ్ట్
1CSHR3shift, valval >> shiftలాజికల్ షిఫ్ట్ రైట్
1DSAR3shift, valval >> shiftఅరిథమెటిక్ షిఫ్ట్ రైట్
1E-1Fచెల్లనిది
20KECCAK256A2 (opens in a new tab)ost, lenkeccak256(mem[ost:ost+len-1])keccak256
21-2Fచెల్లనిది
30ADDRESS2.address(this)అమలు చేస్తున్న కాంట్రాక్టు చిరునామా
31BALANCEA5 (opens in a new tab)addraddr.balanceబ్యాలెన్స్, weiలో
32ORIGIN2.tx.origintxని ప్రారంభించిన చిరునామా
33CALLER2.msg.sendermsg పంపినవారి చిరునామా
34CALLVALUE2.msg.valuemsg విలువ, weiలో
35CALLDATALOAD3idxmsg.data[idx:idx+32]idx సూచిక వద్ద msg డేటా నుండి వర్డ్‌ను చదవండి
36CALLDATASIZE2.len(msg.data)msg డేటా పొడవు, బైట్లలో
37CALLDATACOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1]msg డేటాను కాపీ చేయండి
38CODESIZE2.len(this.code)అమలు చేస్తున్న కాంట్రాక్టు కోడ్ పొడవు, బైట్లలో
39CODECOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1]అమలు చేస్తున్న కాంట్రాక్టు బైట్‌కోడ్‌ను కాపీ చేయండి
3AGASPRICE2.tx.gaspricetx గ్యాస్ ధర, ఒక యూనిట్ గ్యాస్‌కు weiలో ** (opens in a new tab)
3BEXTCODESIZEA5 (opens in a new tab)addrlen(addr.code)addr వద్ద కోడ్ పరిమాణం, బైట్లలో
3CEXTCODECOPYA4 (opens in a new tab)addr, dstOst, ost, len.mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1]addr నుండి కోడ్‌ను కాపీ చేయండి
3DRETURNDATASIZE2.sizeచివరి బాహ్య కాల్ నుండి తిరిగి ఇవ్వబడిన డేటా పరిమాణం, బైట్లలో
3ERETURNDATACOPYA3 (opens in a new tab)dstOst, ost, len.mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1]చివరి బాహ్య కాల్ నుండి తిరిగి ఇవ్వబడిన డేటాను కాపీ చేయండి
3FEXTCODEHASHA5 (opens in a new tab)addrhashhash = addr.exists ? keccak256(addr.code) : 0
40BLOCKHASH20blockNumblockHash(blockNum)
41COINBASE2.block.coinbaseప్రస్తుత బ్లాక్ యొక్క ప్రతిపాదకుని చిరునామా
42TIMESTAMP2.block.timestampప్రస్తుత బ్లాక్ యొక్క టైమ్‌స్టాంప్
43NUMBER2.block.numberప్రస్తుత బ్లాక్ సంఖ్య
44PREVRANDAO2.randomness beaconరాండమ్‌నెస్ బీకాన్
45GASLIMIT2.block.gaslimitప్రస్తుత బ్లాక్ యొక్క గ్యాస్ పరిమితి
46CHAINID2.chain_idప్రస్తుత చైన్ ఐడి (opens in a new tab)ని స్టాక్‌పైకి నెట్టండి
47SELFBALANCE5.address(this).balanceఅమలు చేస్తున్న కాంట్రాక్టు బ్యాలెన్స్, weiలో
48BASEFEE2.block.basefeeప్రస్తుత బ్లాక్ యొక్క మూల రుసుము
49BLOBHASH3idxtx.blob_versioned_hashes[idx]EIP-4844 (opens in a new tab)
4ABLOBBASEFEE2.block.blobbasefeeప్రస్తుత బ్లాక్ యొక్క బ్లాబ్ మూల రుసుము (EIP-7516 (opens in a new tab))
4B-4Fచెల్లనిది
50POP2_anon.స్టాక్ పై నుండి అంశాన్ని తీసివేసి, దానిని విస్మరించండి
51MLOAD3* (opens in a new tab)ostmem[ost:ost+32]ఆఫ్‌సెట్ ost వద్ద మెమరీ నుండి వర్డ్‌ను చదవండి
52MSTORE3* (opens in a new tab)ost, val.mem[ost:ost+32] := valమెమరీకి ఒక వర్డ్‌ను వ్రాయండి
53MSTORE83* (opens in a new tab)ost, val.mem[ost] := val && 0xFFమెమరీకి ఒకే బైట్‌ను వ్రాయండి
54SLOADA6 (opens in a new tab)keystorage[key]స్టోరేజ్ నుండి వర్డ్‌ను చదవండి
55SSTOREA7 (opens in a new tab)key, val.storage[key] := valస్టోరేజ్‌కు వర్డ్‌ను వ్రాయండి
56JUMP8dst.dst ఒక చెల్లుబాటు అయ్యే జంప్‌డెస్ట్ అయితే మాత్రమే $pc := dst మార్క్ pc కేటాయించబడుతుంది
57JUMPI10dst, condition.$pc := condition ? dst : $pc + 1
58PC2.$pcప్రోగ్రామ్ కౌంటర్
59MSIZE2.len(mem)ప్రస్తుత అమలు సందర్భంలో మెమరీ పరిమాణం, బైట్లలో
5AGAS2.gasRemaining
5BJUMPDEST1చెల్లుబాటు అయ్యే జంప్ గమ్యాన్ని మార్క్ చేయండిచెల్లుబాటు అయ్యే జంప్ గమ్యం, ఉదాహరణకు పుష్ డేటా లోపల లేని జంప్ గమ్యం
5CTLOAD100keytstorage[key]తాత్కాలిక స్టోరేజ్ నుండి వర్డ్‌ను చదవండి (EIP-1153 (opens in a new tab))
5DTSTORE100key, val.tstorage[key] := valతాత్కాలిక స్టోరేజ్‌కు వర్డ్‌ను వ్రాయండి (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]ఒక ప్రాంతం నుండి మరొక ప్రాంతానికి మెమరీని కాపీ చేయండి (EIP-5656 (opens in a new tab))
5FPUSH02.uint8స్థిరమైన విలువ 0ని స్టాక్‌పైకి నెట్టండి
60PUSH13.uint81-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
61PUSH23.uint162-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
62PUSH33.uint243-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
63PUSH43.uint324-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
64PUSH53.uint405-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
65PUSH63.uint486-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
66PUSH73.uint567-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
67PUSH83.uint648-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
68PUSH93.uint729-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
69PUSH103.uint8010-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
6APUSH113.uint8811-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
6BPUSH123.uint9612-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
6CPUSH133.uint10413-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
6DPUSH143.uint11214-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
6EPUSH153.uint12015-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
6FPUSH163.uint12816-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
70PUSH173.uint13617-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
71PUSH183.uint14418-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
72PUSH193.uint15219-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
73PUSH203.uint16020-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
74PUSH213.uint16821-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
75PUSH223.uint17622-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
76PUSH233.uint18423-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
77PUSH243.uint19224-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
78PUSH253.uint20025-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
79PUSH263.uint20826-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
7APUSH273.uint21627-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
7BPUSH283.uint22428-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
7CPUSH293.uint23229-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
7DPUSH303.uint24030-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
7EPUSH313.uint24831-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
7FPUSH323.uint25632-బైట్ విలువను స్టాక్‌పైకి నెట్టండి
80DUP13aa, aస్టాక్‌లో 1వ విలువను క్లోన్ చేయండి
81DUP23_, aa, _, aస్టాక్‌లో 2వ విలువను క్లోన్ చేయండి
82DUP33_, _, aa, _, _, aస్టాక్‌లో 3వ విలువను క్లోన్ చేయండి
83DUP43_, _, _, aa, _, _, _, aస్టాక్‌లో 4వ విలువను క్లోన్ చేయండి
84DUP53..., aa, ..., aస్టాక్‌లో 5వ విలువను క్లోన్ చేయండి
85DUP63..., aa, ..., aస్టాక్‌లో 6వ విలువను క్లోన్ చేయండి
86DUP73..., aa, ..., aస్టాక్‌లో 7వ విలువను క్లోన్ చేయండి
87DUP83..., aa, ..., aస్టాక్‌లో 8వ విలువను క్లోన్ చేయండి
88DUP93..., aa, ..., aస్టాక్‌లో 9వ విలువను క్లోన్ చేయండి
89DUP103..., aa, ..., aస్టాక్‌లో 10వ విలువను క్లోన్ చేయండి
8ADUP113..., aa, ..., aస్టాక్‌లో 11వ విలువను క్లోన్ చేయండి
8BDUP123..., aa, ..., aస్టాక్‌లో 12వ విలువను క్లోన్ చేయండి
8CDUP133..., aa, ..., aస్టాక్‌లో 13వ విలువను క్లోన్ చేయండి
8DDUP143..., aa, ..., aస్టాక్‌లో 14వ విలువను క్లోన్ చేయండి
8EDUP153..., aa, ..., aస్టాక్‌లో 15వ విలువను క్లోన్ చేయండి
8FDUP163..., aa, ..., aస్టాక్‌లో 16వ విలువను క్లోన్ చేయండి
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(memory[ost:ost+len-1])
A1LOG1A8 (opens in a new tab)ost, len, topic0.LOG1(memory[ost:ost+len-1], topic0)
A2LOG2A8 (opens in a new tab)ost, len, topic0, topic1.LOG2(memory[ost:ost+len-1], topic0, topic1)
A3LOG3A8 (opens in a new tab)ost, len, topic0, topic1, topic2.LOG3(memory[ost:ost+len-1], topic0, topic1, topic2)
A4LOG4A8 (opens in a new tab)ost, len, topic0, topic1, topic2, topic3.LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3)
A5-EFచెల్లనిది
F0CREATEA9 (opens in a new tab)val, ost, lenaddraddr = keccak256(rlp([address(this), this.nonce]))
F1CALLAA (opens in a new tab)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F2CALLCODEAA (opens in a new tab)gas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] = returndataDELEGATECALL లాంటిదే, కానీ అసలైన msg.sender మరియు msg.valueని ప్రచారం చేయదు
F3RETURN0* (opens in a new tab)ost, len.mem[ost:ost+len-1]ను తిరిగి పంపుతుంది
F4DELEGATECALLAA (opens in a new tab)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F5CREATE2A9 (opens in a new tab)val, ost, len, saltaddraddr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:]
F6-F9చెల్లనిది
FASTATICCALLAA (opens in a new tab)gas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
FB-FCచెల్లనిది
FDREVERT0* (opens in a new tab)ost, len.revert(mem[ost:ost+len-1])
FEINVALIDAF (opens in a new tab)నియమించబడిన చెల్లని ఆప్కోడ్ - EIP-141 (opens in a new tab)
FFSELFDESTRUCTAB (opens in a new tab)addr.addrకు అన్ని ETHలను పంపుతుంది; ఒక కాంట్రాక్టు సృష్టించబడిన అదే లావాదేవీలో అమలు చేయబడితే అది కాంట్రాక్టును నాశనం చేస్తుంది

ఈ ఆర్టికల్ ఉపయోగపడిందా?