مرکزی مواد پر جائیں
Change page

EVM کے لیے Opcodes

صفحہ کی آخری اپ ڈیٹ: 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) کے نفاذ سے بھی اخذ کیا گیا ہے۔ اس کا مقصد ایک قابل رسائی حوالہ فراہم کرنا ہے، لیکن یہ خاص طور پر سخت نہیں ہے۔ اگر آپ درستگی کا یقین کرنا چاہتے ہیں اور ہر ایج کیس (edge case) سے آگاہ ہونا چاہتے ہیں، تو Jello Paper یا کلائنٹ کے نفاذ کا استعمال کرنا مناسب ہے۔

کیا آپ ایک انٹرایکٹو حوالہ تلاش کر رہے ہیں؟ 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, ba || bبٹ وائز OR
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.originوہ ایڈریس جس نے tx شروع کیا
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.$pc := dst نشان زد کریں کہ pc صرف اسی صورت میں تفویض کیا جاتا ہے جب dst ایک درست jumpdest ہو
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اسٹیک پر پہلی ویلیو کا کلون بنائیں
81DUP23_, aa, _, aاسٹیک پر دوسری ویلیو کا کلون بنائیں
82DUP33_, _, aa, _, _, aاسٹیک پر تیسری ویلیو کا کلون بنائیں
83DUP43_, _, _, aa, _, _, _, aاسٹیک پر چوتھی ویلیو کا کلون بنائیں
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.return 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.تمام ETH کو addr پر بھیجتا ہے؛ اگر اسی ٹرانزیکشن میں عملدرآمد کیا جائے جس میں کنٹریکٹ بنایا گیا تھا تو یہ کنٹریکٹ کو تباہ کر دیتا ہے

کیا یہ مضمون مددگار تھا؟