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

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

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

అవలోకనం

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

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

డైనమిక్ గ్యాస్ ఖర్చులతో కూడిన ఆపరేషన్ల కోసం, gas.mdopens 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
0AEXPA1opens in a new taba, 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చెల్లనిది
20KECCAK256A2opens in a new tabost, lenkeccak256(mem[ost:ost+len-1])keccak256
21-2Fచెల్లనిది
30ADDRESS2.address(this)అమలు చేస్తున్న కాంట్రాక్టు చిరునామా
31BALANCEA5opens in a new tabaddraddr.balanceబ్యాలెన్స్, weiలో
32ORIGIN2.tx.origintxని ప్రారంభించిన చిరునామా
33CALLER2.msg.sendermsg పంపినవారి చిరునామా
34CALLVALUE2.msg.valuemsg విలువ, weiలో
35CALLDATALOAD3idxmsg.data[idx:idx+32]idx సూచిక వద్ద msg డేటా నుండి వర్డ్‌ను చదవండి
36CALLDATASIZE2.len(msg.data)msg డేటా పొడవు, బైట్లలో
37CALLDATACOPYA3opens in a new tabdstOst, ost, len.mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1]msg డేటాను కాపీ చేయండి
38CODESIZE2.len(this.code)అమలు చేస్తున్న కాంట్రాక్టు కోడ్ పొడవు, బైట్లలో
39CODECOPYA3opens in a new tabdstOst, ost, len.mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1]అమలు చేస్తున్న కాంట్రాక్టు బైట్‌కోడ్‌ను కాపీ చేయండి
3AGASPRICE2.tx.gaspricetx గ్యాస్ ధర, ఒక యూనిట్ గ్యాస్‌కు weiలో **opens in a new tab
3BEXTCODESIZEA5opens in a new tabaddrlen(addr.code)addr వద్ద కోడ్ పరిమాణం, బైట్లలో
3CEXTCODECOPYA4opens in a new tabaddr, dstOst, ost, len.mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1]addr నుండి కోడ్‌ను కాపీ చేయండి
3DRETURNDATASIZE2.sizeచివరి బాహ్య కాల్ నుండి తిరిగి ఇవ్వబడిన డేటా పరిమాణం, బైట్లలో
3ERETURNDATACOPYA3opens in a new tabdstOst, ost, len.mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1]చివరి బాహ్య కాల్ నుండి తిరిగి ఇవ్వబడిన డేటాను కాపీ చేయండి
3FEXTCODEHASHA5opens in a new tabaddrhashhash = 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-4844opens in a new tab
4ABLOBBASEFEE2.block.blobbasefeeప్రస్తుత బ్లాక్ యొక్క బ్లాబ్ మూల రుసుము (EIP-7516opens in a new tab)
4B-4Fచెల్లనిది
50POP2_anon.స్టాక్ పై నుండి అంశాన్ని తీసివేసి, దానిని విస్మరించండి
51MLOAD3*opens in a new tabostmem[ost:ost+32]ఆఫ్‌సెట్ ost వద్ద మెమరీ నుండి వర్డ్‌ను చదవండి
52MSTORE3*opens in a new tabost, val.mem[ost:ost+32] := valమెమరీకి ఒక వర్డ్‌ను వ్రాయండి
53MSTORE83*opens in a new tabost, val.mem[ost] := val && 0xFFమెమరీకి ఒకే బైట్‌ను వ్రాయండి
54SLOADA6opens in a new tabkeystorage[key]స్టోరేజ్ నుండి వర్డ్‌ను చదవండి
55SSTOREA7opens in a new tabkey, 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-1153opens in a new tab)
5DTSTORE100key, val.tstorage[key] := valతాత్కాలిక స్టోరేజ్‌కు వర్డ్‌ను వ్రాయండి (EIP-1153opens in a new tab)
5EMCOPY3+3*words+A0opens in a new tabdstOst, ost, len.mem[dstOst] := mem[ost:ost+len]ఒక ప్రాంతం నుండి మరొక ప్రాంతానికి మెమరీని కాపీ చేయండి (EIP-5656opens 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
A0LOG0A8opens in a new tabost, len.LOG0(memory[ost:ost+len-1])
A1LOG1A8opens in a new tabost, len, topic0.LOG1(memory[ost:ost+len-1], topic0)
A2LOG2A8opens in a new tabost, len, topic0, topic1.LOG2(memory[ost:ost+len-1], topic0, topic1)
A3LOG3A8opens in a new tabost, len, topic0, topic1, topic2.LOG3(memory[ost:ost+len-1], topic0, topic1, topic2)
A4LOG4A8opens in a new tabost, len, topic0, topic1, topic2, topic3.LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3)
A5-EFచెల్లనిది
F0CREATEA9opens in a new tabval, ost, lenaddraddr = keccak256(rlp([address(this), this.nonce]))
F1CALLAAopens in a new tabgas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F2CALLCODEAAopens in a new tabgas, addr, val, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] = returndataDELEGATECALL లాంటిదే, కానీ అసలైన msg.sender మరియు msg.valueని ప్రచారం చేయదు
F3RETURN0*opens in a new tabost, len.mem[ost:ost+len-1]ను తిరిగి పంపుతుంది
F4DELEGATECALLAAopens in a new tabgas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
F5CREATE2A9opens in a new tabval, ost, len, saltaddraddr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:]
F6-F9చెల్లనిది
FASTATICCALLAAopens in a new tabgas, addr, argOst, argLen, retOst, retLensuccessmem[retOst:retOst+retLen-1] := returndata
FB-FCచెల్లనిది
FDREVERT0*opens in a new tabost, len.revert(mem[ost:ost+len-1])
FEINVALIDAFopens in a new tabనియమించబడిన చెల్లని ఆప్కోడ్ - EIP-141opens in a new tab
FFSELFDESTRUCTABopens in a new tabaddr.addrకు అన్ని ETHలను పంపుతుంది; ఒక కాంట్రాక్టు సృష్టించబడిన అదే లావాదేవీలో అమలు చేయబడితే అది కాంట్రాక్టును నాశనం చేస్తుంది

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