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ని ఉపయోగించండి.
| స్టాక్ | పేరు | గ్యాస్ | ప్రారంభ స్టాక్ | ఫలిత స్టాక్ | మెమ్ / నిల్వ | గమనికలు | |
|---|---|---|---|---|---|---|---|
| 00 | STOP | 0 | అమలును నిలిపివేస్తుంది | ||||
| 01 | ADD | 3 | a, b | a + b | (u)int256 సంకలనం మాడ్యులో 2**256 | ||
| 02 | MUL | 5 | a, b | a * b | (u)int256 గుణకారం మాడ్యులో 2**256 | ||
| 03 | SUB | 3 | a, b | a - b | (u)int256 వ్యవకలనం మాడ్యులో 2**256 | ||
| 04 | DIV | 5 | a, b | a // b | uint256 భాగహారం | ||
| 05 | SDIV | 5 | a, b | a // b | int256 భాగహారం | ||
| 06 | MOD | 5 | a, b | a % b | uint256 మాడ్యులస్ | ||
| 07 | SMOD | 5 | a, b | a % b | int256 మాడ్యులస్ | ||
| 08 | ADDMOD | 8 | a, b, N | (a + b) % N | (u)int256 సంకలనం మాడ్యులో N | ||
| 09 | MULMOD | 8 | a, b, N | (a * b) % N | (u)int256 గుణకారం మాడ్యులో N | ||
| 0A | EXP | A1opens in a new tab | a, b | a ** b | uint256 ఘాతాంకం మాడ్యులో 2**256 | ||
| 0B | SIGNEXTEND | 5 | b, x | SIGNEXTEND(x, b) | x ని (b+1) బైట్ల నుండి 32 బైట్లకు సైన్ విస్తరించండిopens in a new tab | ||
| 0C-0F | చెల్లనిది | ||||||
| 10 | LT | 3 | a, b | a < b | uint256 కంటే-తక్కువ | ||
| 11 | GT | 3 | a, b | a > b | uint256 కంటే-ఎక్కువ | ||
| 12 | SLT | 3 | a, b | a < b | int256 కంటే-తక్కువ | ||
| 13 | SGT | 3 | a, b | a > b | int256 కంటే-ఎక్కువ | ||
| 14 | EQ | 3 | a, b | a == b | (u)int256 సమానత్వం | ||
| 15 | ISZERO | 3 | a | a == 0 | (u)int256 సున్నా అయితే | ||
| 16 | AND | 3 | a, b | a && b | బిట్వైజ్ AND | ||
| 17 | OR | 3 | a, b | `a \ | \ | b` | |
| 18 | XOR | 3 | a, b | a ^ b | బిట్వైజ్ XOR | ||
| 19 | NOT | 3 | a | ~a | బిట్వైజ్ NOT | ||
| 1A | BYTE | 3 | i, x | (x >> (248 - i * 8)) && 0xFF | ఎడమ నుండి (u)int256 x యొక్క iవ బైట్ | ||
| 1B | SHL | 3 | shift, val | val << shift | ఎడమకు షిఫ్ట్ | ||
| 1C | SHR | 3 | shift, val | val >> shift | లాజికల్ షిఫ్ట్ రైట్ | ||
| 1D | SAR | 3 | shift, val | val >> shift | అరిథమెటిక్ షిఫ్ట్ రైట్ | ||
| 1E-1F | చెల్లనిది | ||||||
| 20 | KECCAK256 | A2opens in a new tab | ost, len | keccak256(mem[ost:ost+len-1]) | keccak256 | ||
| 21-2F | చెల్లనిది | ||||||
| 30 | ADDRESS | 2 | . | address(this) | అమలు చేస్తున్న కాంట్రాక్టు చిరునామా | ||
| 31 | BALANCE | A5opens in a new tab | addr | addr.balance | బ్యాలెన్స్, weiలో | ||
| 32 | ORIGIN | 2 | . | tx.origin | txని ప్రారంభించిన చిరునామా | ||
| 33 | CALLER | 2 | . | msg.sender | msg పంపినవారి చిరునామా | ||
| 34 | CALLVALUE | 2 | . | msg.value | msg విలువ, weiలో | ||
| 35 | CALLDATALOAD | 3 | idx | msg.data[idx:idx+32] | idx సూచిక వద్ద msg డేటా నుండి వర్డ్ను చదవండి | ||
| 36 | CALLDATASIZE | 2 | . | len(msg.data) | msg డేటా పొడవు, బైట్లలో | ||
| 37 | CALLDATACOPY | A3opens in a new tab | dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1] | msg డేటాను కాపీ చేయండి | |
| 38 | CODESIZE | 2 | . | len(this.code) | అమలు చేస్తున్న కాంట్రాక్టు కోడ్ పొడవు, బైట్లలో | ||
| 39 | CODECOPY | A3opens in a new tab | dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1] | అమలు చేస్తున్న కాంట్రాక్టు బైట్కోడ్ను కాపీ చేయండి | |
| 3A | GASPRICE | 2 | . | tx.gasprice | tx గ్యాస్ ధర, ఒక యూనిట్ గ్యాస్కు weiలో **opens in a new tab | ||
| 3B | EXTCODESIZE | A5opens in a new tab | addr | len(addr.code) | addr వద్ద కోడ్ పరిమాణం, బైట్లలో | ||
| 3C | EXTCODECOPY | A4opens in a new tab | addr, dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1] | addr నుండి కోడ్ను కాపీ చేయండి | |
| 3D | RETURNDATASIZE | 2 | . | size | చివరి బాహ్య కాల్ నుండి తిరిగి ఇవ్వబడిన డేటా పరిమాణం, బైట్లలో | ||
| 3E | RETURNDATACOPY | A3opens in a new tab | dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1] | చివరి బాహ్య కాల్ నుండి తిరిగి ఇవ్వబడిన డేటాను కాపీ చేయండి | |
| 3F | EXTCODEHASH | A5opens in a new tab | addr | hash | hash = addr.exists ? keccak256(addr.code) : 0 | ||
| 40 | BLOCKHASH | 20 | blockNum | blockHash(blockNum) | |||
| 41 | COINBASE | 2 | . | block.coinbase | ప్రస్తుత బ్లాక్ యొక్క ప్రతిపాదకుని చిరునామా | ||
| 42 | TIMESTAMP | 2 | . | block.timestamp | ప్రస్తుత బ్లాక్ యొక్క టైమ్స్టాంప్ | ||
| 43 | NUMBER | 2 | . | block.number | ప్రస్తుత బ్లాక్ సంఖ్య | ||
| 44 | PREVRANDAO | 2 | . | randomness beacon | రాండమ్నెస్ బీకాన్ | ||
| 45 | GASLIMIT | 2 | . | block.gaslimit | ప్రస్తుత బ్లాక్ యొక్క గ్యాస్ పరిమితి | ||
| 46 | CHAINID | 2 | . | chain_id | ప్రస్తుత చైన్ ఐడిopens in a new tabని స్టాక్పైకి నెట్టండి | ||
| 47 | SELFBALANCE | 5 | . | address(this).balance | అమలు చేస్తున్న కాంట్రాక్టు బ్యాలెన్స్, weiలో | ||
| 48 | BASEFEE | 2 | . | block.basefee | ప్రస్తుత బ్లాక్ యొక్క మూల రుసుము | ||
| 49 | BLOBHASH | 3 | idx | tx.blob_versioned_hashes[idx] | EIP-4844opens in a new tab | ||
| 4A | BLOBBASEFEE | 2 | . | block.blobbasefee | ప్రస్తుత బ్లాక్ యొక్క బ్లాబ్ మూల రుసుము (EIP-7516opens in a new tab) | ||
| 4B-4F | చెల్లనిది | ||||||
| 50 | POP | 2 | _anon | . | స్టాక్ పై నుండి అంశాన్ని తీసివేసి, దానిని విస్మరించండి | ||
| 51 | MLOAD | 3*opens in a new tab | ost | mem[ost:ost+32] | ఆఫ్సెట్ ost వద్ద మెమరీ నుండి వర్డ్ను చదవండి | ||
| 52 | MSTORE | 3*opens in a new tab | ost, val | . | mem[ost:ost+32] := val | మెమరీకి ఒక వర్డ్ను వ్రాయండి | |
| 53 | MSTORE8 | 3*opens in a new tab | ost, val | . | mem[ost] := val && 0xFF | మెమరీకి ఒకే బైట్ను వ్రాయండి | |
| 54 | SLOAD | A6opens in a new tab | key | storage[key] | స్టోరేజ్ నుండి వర్డ్ను చదవండి | ||
| 55 | SSTORE | A7opens in a new tab | key, val | . | storage[key] := val | స్టోరేజ్కు వర్డ్ను వ్రాయండి | |
| 56 | JUMP | 8 | dst | . | dst ఒక చెల్లుబాటు అయ్యే జంప్డెస్ట్ అయితే మాత్రమే $pc := dst మార్క్ pc కేటాయించబడుతుంది | ||
| 57 | JUMPI | 10 | dst, condition | . | $pc := condition ? dst : $pc + 1 | ||
| 58 | PC | 2 | . | $pc | ప్రోగ్రామ్ కౌంటర్ | ||
| 59 | MSIZE | 2 | . | len(mem) | ప్రస్తుత అమలు సందర్భంలో మెమరీ పరిమాణం, బైట్లలో | ||
| 5A | GAS | 2 | . | gasRemaining | |||
| 5B | JUMPDEST | 1 | చెల్లుబాటు అయ్యే జంప్ గమ్యాన్ని మార్క్ చేయండి | చెల్లుబాటు అయ్యే జంప్ గమ్యం, ఉదాహరణకు పుష్ డేటా లోపల లేని జంప్ గమ్యం | |||
| 5C | TLOAD | 100 | key | tstorage[key] | తాత్కాలిక స్టోరేజ్ నుండి వర్డ్ను చదవండి (EIP-1153opens in a new tab) | ||
| 5D | TSTORE | 100 | key, val | . | tstorage[key] := val | తాత్కాలిక స్టోరేజ్కు వర్డ్ను వ్రాయండి (EIP-1153opens in a new tab) | |
| 5E | MCOPY | 3+3*words+A0opens in a new tab | dstOst, ost, len | . | mem[dstOst] := mem[ost:ost+len] | ఒక ప్రాంతం నుండి మరొక ప్రాంతానికి మెమరీని కాపీ చేయండి (EIP-5656opens in a new tab) | |
| 5F | PUSH0 | 2 | . | uint8 | స్థిరమైన విలువ 0ని స్టాక్పైకి నెట్టండి | ||
| 60 | PUSH1 | 3 | . | uint8 | 1-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 61 | PUSH2 | 3 | . | uint16 | 2-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 62 | PUSH3 | 3 | . | uint24 | 3-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 63 | PUSH4 | 3 | . | uint32 | 4-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 64 | PUSH5 | 3 | . | uint40 | 5-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 65 | PUSH6 | 3 | . | uint48 | 6-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 66 | PUSH7 | 3 | . | uint56 | 7-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 67 | PUSH8 | 3 | . | uint64 | 8-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 68 | PUSH9 | 3 | . | uint72 | 9-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 69 | PUSH10 | 3 | . | uint80 | 10-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 6A | PUSH11 | 3 | . | uint88 | 11-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 6B | PUSH12 | 3 | . | uint96 | 12-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 6C | PUSH13 | 3 | . | uint104 | 13-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 6D | PUSH14 | 3 | . | uint112 | 14-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 6E | PUSH15 | 3 | . | uint120 | 15-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 6F | PUSH16 | 3 | . | uint128 | 16-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 70 | PUSH17 | 3 | . | uint136 | 17-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 71 | PUSH18 | 3 | . | uint144 | 18-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 72 | PUSH19 | 3 | . | uint152 | 19-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 73 | PUSH20 | 3 | . | uint160 | 20-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 74 | PUSH21 | 3 | . | uint168 | 21-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 75 | PUSH22 | 3 | . | uint176 | 22-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 76 | PUSH23 | 3 | . | uint184 | 23-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 77 | PUSH24 | 3 | . | uint192 | 24-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 78 | PUSH25 | 3 | . | uint200 | 25-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 79 | PUSH26 | 3 | . | uint208 | 26-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 7A | PUSH27 | 3 | . | uint216 | 27-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 7B | PUSH28 | 3 | . | uint224 | 28-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 7C | PUSH29 | 3 | . | uint232 | 29-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 7D | PUSH30 | 3 | . | uint240 | 30-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 7E | PUSH31 | 3 | . | uint248 | 31-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 7F | PUSH32 | 3 | . | uint256 | 32-బైట్ విలువను స్టాక్పైకి నెట్టండి | ||
| 80 | DUP1 | 3 | a | a, a | స్టాక్లో 1వ విలువను క్లోన్ చేయండి | ||
| 81 | DUP2 | 3 | _, a | a, _, a | స్టాక్లో 2వ విలువను క్లోన్ చేయండి | ||
| 82 | DUP3 | 3 | _, _, a | a, _, _, a | స్టాక్లో 3వ విలువను క్లోన్ చేయండి | ||
| 83 | DUP4 | 3 | _, _, _, a | a, _, _, _, a | స్టాక్లో 4వ విలువను క్లోన్ చేయండి | ||
| 84 | DUP5 | 3 | ..., a | a, ..., a | స్టాక్లో 5వ విలువను క్లోన్ చేయండి | ||
| 85 | DUP6 | 3 | ..., a | a, ..., a | స్టాక్లో 6వ విలువను క్లోన్ చేయండి | ||
| 86 | DUP7 | 3 | ..., a | a, ..., a | స్టాక్లో 7వ విలువను క్లోన్ చేయండి | ||
| 87 | DUP8 | 3 | ..., a | a, ..., a | స్టాక్లో 8వ విలువను క్లోన్ చేయండి | ||
| 88 | DUP9 | 3 | ..., a | a, ..., a | స్టాక్లో 9వ విలువను క్లోన్ చేయండి | ||
| 89 | DUP10 | 3 | ..., a | a, ..., a | స్టాక్లో 10వ విలువను క్లోన్ చేయండి | ||
| 8A | DUP11 | 3 | ..., a | a, ..., a | స్టాక్లో 11వ విలువను క్లోన్ చేయండి | ||
| 8B | DUP12 | 3 | ..., a | a, ..., a | స్టాక్లో 12వ విలువను క్లోన్ చేయండి | ||
| 8C | DUP13 | 3 | ..., a | a, ..., a | స్టాక్లో 13వ విలువను క్లోన్ చేయండి | ||
| 8D | DUP14 | 3 | ..., a | a, ..., a | స్టాక్లో 14వ విలువను క్లోన్ చేయండి | ||
| 8E | DUP15 | 3 | ..., a | a, ..., a | స్టాక్లో 15వ విలువను క్లోన్ చేయండి | ||
| 8F | DUP16 | 3 | ..., a | a, ..., a | స్టాక్లో 16వ విలువను క్లోన్ చేయండి | ||
| 90 | SWAP1 | 3 | a, b | b, a | |||
| 91 | SWAP2 | 3 | a, _, b | b, _, a | |||
| 92 | SWAP3 | 3 | a, _, _, b | b, _, _, a | |||
| 93 | SWAP4 | 3 | a, _, _, _, b | b, _, _, _, a | |||
| 94 | SWAP5 | 3 | a, ..., b | b, ..., a | |||
| 95 | SWAP6 | 3 | a, ..., b | b, ..., a | |||
| 96 | SWAP7 | 3 | a, ..., b | b, ..., a | |||
| 97 | SWAP8 | 3 | a, ..., b | b, ..., a | |||
| 98 | SWAP9 | 3 | a, ..., b | b, ..., a | |||
| 99 | SWAP10 | 3 | a, ..., b | b, ..., a | |||
| 9A | SWAP11 | 3 | a, ..., b | b, ..., a | |||
| 9B | SWAP12 | 3 | a, ..., b | b, ..., a | |||
| 9C | SWAP13 | 3 | a, ..., b | b, ..., a | |||
| 9D | SWAP14 | 3 | a, ..., b | b, ..., a | |||
| 9E | SWAP15 | 3 | a, ..., b | b, ..., a | |||
| 9F | SWAP16 | 3 | a, ..., b | b, ..., a | |||
| A0 | LOG0 | A8opens in a new tab | ost, len | . | LOG0(memory[ost:ost+len-1]) | ||
| A1 | LOG1 | A8opens in a new tab | ost, len, topic0 | . | LOG1(memory[ost:ost+len-1], topic0) | ||
| A2 | LOG2 | A8opens in a new tab | ost, len, topic0, topic1 | . | LOG2(memory[ost:ost+len-1], topic0, topic1) | ||
| A3 | LOG3 | A8opens in a new tab | ost, len, topic0, topic1, topic2 | . | LOG3(memory[ost:ost+len-1], topic0, topic1, topic2) | ||
| A4 | LOG4 | A8opens in a new tab | ost, len, topic0, topic1, topic2, topic3 | . | LOG4(memory[ost:ost+len-1], topic0, topic1, topic2, topic3) | ||
| A5-EF | చెల్లనిది | ||||||
| F0 | CREATE | A9opens in a new tab | val, ost, len | addr | addr = keccak256(rlp([address(this), this.nonce])) | ||
| F1 | CALL | AAopens in a new tab | gas, addr, val, argOst, argLen, retOst, retLen | success | mem[retOst:retOst+retLen-1] := returndata | ||
| F2 | CALLCODE | AAopens in a new tab | gas, addr, val, argOst, argLen, retOst, retLen | success | mem[retOst:retOst+retLen-1] = returndata | DELEGATECALL లాంటిదే, కానీ అసలైన msg.sender మరియు msg.valueని ప్రచారం చేయదు | |
| F3 | RETURN | 0*opens in a new tab | ost, len | . | mem[ost:ost+len-1]ను తిరిగి పంపుతుంది | ||
| F4 | DELEGATECALL | AAopens in a new tab | gas, addr, argOst, argLen, retOst, retLen | success | mem[retOst:retOst+retLen-1] := returndata | ||
| F5 | CREATE2 | A9opens in a new tab | val, ost, len, salt | addr | addr = keccak256(0xff ++ address(this) ++ salt ++ keccak256(mem[ost:ost+len-1]))[12:] | ||
| F6-F9 | చెల్లనిది | ||||||
| FA | STATICCALL | AAopens in a new tab | gas, addr, argOst, argLen, retOst, retLen | success | mem[retOst:retOst+retLen-1] := returndata | ||
| FB-FC | చెల్లనిది | ||||||
| FD | REVERT | 0*opens in a new tab | ost, len | . | revert(mem[ost:ost+len-1]) | ||
| FE | INVALID | AFopens in a new tab | నియమించబడిన చెల్లని ఆప్కోడ్ - EIP-141opens in a new tab | ||||
| FF | SELFDESTRUCT | ABopens in a new tab | addr | . | addrకు అన్ని ETHలను పంపుతుంది; ఒక కాంట్రాక్టు సృష్టించబడిన అదే లావాదేవీలో అమలు చేయబడితే అది కాంట్రాక్టును నాశనం చేస్తుంది |