EVM için işlem kodları
Sayfanın son güncellenmesi: 11 Eylül 2025
Genel Bakış
Bu, wolflo/evm-opcodesopens in a new tab adresindeki EVM referans sayfasının güncellenmiş bir sürümüdür. Ayrıca Sarı Bültenopens in a new tab, Jello Bülteniopens in a new tab ve gethopens in a new tab uygulamasından da yararlanılmıştır. Bunun erişilebilir bir referans olması amaçlanmıştır, ancak özellikle net değildir. Eğer doğruluktan emin olmak ve her kenar durumundan haberdar olmak istiyorsanız, Jello Kağıdı veya bir müşteri uygulaması kullanmanız tavsiye edilir.
İnteraktif bir referans mı arıyorsunuz? evm.codesopens in a new tab sitesine göz atın.
Dinamik gaz maliyetli işlemler için gas.mdopens in a new tab dosyasına bakın.
💡 Hızlı ipucu: Tüm satırları görüntülemek için, masaüstünde yatay olarak kaydırmak üzere [shift] + scroll kullanın.
| Yığın | İsim | Gaz | Başlangıç Yığını | Sonuç Yığını | Bellek/Depolama | Notlar | |
|---|---|---|---|---|---|---|---|
| 00 | STOP | 0 | yürütmeyi durdur | ||||
| 01 | EKLE | 3 | a, b | a + b | (u)int256 toplama modülo 2**256 | ||
| 02 | MUL | 5 | a, b | a * b | (u)int256 çarpma modülo 2**256 | ||
| 03 | SUB | 3 | a, b | a - b | (u)int256 çıkarma modülo 2**256 | ||
| 04 | DIV | 5 | a, b | a // b | uint256 bölme | ||
| 05 | SDIV | 5 | a, b | a // b | int256 bölme | ||
| 06 | MOD | 5 | a, b | a % b | uint256 modülüs | ||
| 07 | SMOD | 5 | a, b | a % b | int256 modülüs | ||
| 08 | ADDMOD | 8 | a, b, N | (a + b) % N | (u)int256 toplama modülo N | ||
| 09 | MULMOD | 8 | a, b, N | (a * b) % N | (u)int256 çarpma modülo N | ||
| 0A | EXP | A1opens in a new tab | a, b | a ** b | uint256 üs alma modülo 2**256 | ||
| 0B | SIGNEXTEND | 5 | b, x | SIGNEXTEND(x, b) | x'i (b+1) bayttan 32 bayta işaret genişletopens in a new tab | ||
| 0C-0F | geçersiz | ||||||
| 10 | LT | 3 | a, b | a < b | uint256 küçüktür | ||
| 11 | GT | 3 | a, b | a > b | uint256 büyüktür | ||
| 12 | SLT | 3 | a, b | a < b | int256 küçüktür | ||
| 13 | SGT | 3 | a, b | a > b | int256 büyüktür | ||
| 14 | EQ | 3 | a, b | a == b | (u)int256 eşitlik | ||
| 15 | ISZERO | 3 | a | a == 0 | (u)int256 sıfır mı | ||
| 16 | AND | 3 | a, b | a && b | bitsel VE | ||
| 17 | OR | 3 | a, b | `a \ | \ | b` | |
| 18 | XOR | 3 | a, b | a ^ b | bitsel XOR | ||
| 19 | NOT | 3 | a | ~a | bitsel DEĞİL | ||
| 1A | BYTE | 3 | i, x | (x >> (248 - i * 8)) && 0xFF | (u)int256 x'in soldan i'inci baytı | ||
| 1B | SHL | 3 | shift, val | val << shift | sola kaydır | ||
| 1C | SHR | 3 | shift, val | val >> shift | mantıksal sağa kaydırma | ||
| 1D | SAR | 3 | shift, val | val >> shift | aritmetik sağa kaydırma | ||
| 1E-1F | geçersiz | ||||||
| 20 | KECCAK256 | A2opens in a new tab | ost, len | keccak256(mem[ost:ost+len-1]) | keccak256 | ||
| 21-2F | geçersiz | ||||||
| 30 | ADDRESS | 2 | . | address(this) | yürütülen sözleşmenin adresi | ||
| 31 | BALANCE | A5opens in a new tab | addr | addr.balance | bakiye, wei cinsinden | ||
| 32 | ORIGIN | 2 | . | tx.origin | işlemi başlatan adres | ||
| 33 | CALLER | 2 | . | msg.sender | msg göndericisinin adresi | ||
| 34 | CALLVALUE | 2 | . | msg.value | msg değeri, wei cinsinden | ||
| 35 | CALLDATALOAD | 3 | idx | msg.data[idx:idx+32] | idx dizinindeki msg verisinden kelime oku | ||
| 36 | CALLDATASIZE | 2 | . | len(msg.data) | msg verisinin uzunluğu, bayt cinsinden | ||
| 37 | CALLDATACOPY | A3opens in a new tab | dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := msg.data[ost:ost+len-1] | msg verisini kopyala | |
| 38 | CODESIZE | 2 | . | len(this.code) | yürütülen sözleşmenin kodunun uzunluğu, bayt cinsinden | ||
| 39 | CODECOPY | A3opens in a new tab | dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := this.code[ost:ost+len-1] | yürütülen sözleşmenin bayt kodunu kopyala | |
| 3A | GASPRICE | 2 | . | tx.gasprice | işlemin gaz fiyatı, gaz birimi başına wei cinsinden **opens in a new tab | ||
| 3B | EXTCODESIZE | A5opens in a new tab | addr | len(addr.code) | adresteki kodun boyutu, bayt cinsinden | ||
| 3C | EXTCODECOPY | A4opens in a new tab | addr, dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := addr.code[ost:ost+len-1] | addr adresinden kodu kopyala | |
| 3D | RETURNDATASIZE | 2 | . | size | son harici çağrıdan dönen verinin boyutu, bayt cinsinden | ||
| 3E | RETURNDATACOPY | A3opens in a new tab | dstOst, ost, len | . | mem[dstOst:dstOst+len-1] := returndata[ost:ost+len-1] | son harici çağrıdan dönen veriyi kopyala | |
| 3F | EXTCODEHASH | A5opens in a new tab | addr | karma | karma = addr.exists ? keccak256(addr.code) : 0 | ||
| 40 | BLOCKHASH | 20 | blockNum | blockHash(blockNum) | |||
| 41 | COINBASE | 2 | . | block.coinbase | mevcut bloğu önerenin adresi | ||
| 42 | TIMESTAMP | 2 | . | block.timestamp | mevcut bloğun zaman damgası | ||
| 43 | NUMBER | 2 | . | block.number | mevcut bloğun numarası | ||
| 44 | PREVRANDAO | 2 | . | randomness beacon | rastgelelik işaretçisi | ||
| 45 | GASLIMIT | 2 | . | block.gaslimit | mevcut bloğun gaz limiti | ||
| 46 | CHAINID | 2 | . | chain_id | mevcut zincir kimliğiniopens in a new tab yığına it | ||
| 47 | SELFBALANCE | 5 | . | address(this).balance | yürütülen sözleşmenin bakiyesi, wei cinsinden | ||
| 48 | BASEFEE | 2 | . | block.basefee | mevcut bloğun taban ücreti | ||
| 49 | BLOBHASH | 3 | idx | tx.blob_versioned_hashes[idx] | EIP-4844opens in a new tab | ||
| 4A | BLOBBASEFEE | 2 | . | block.blobbasefee | mevcut bloğun blob taban ücreti (EIP-7516opens in a new tab) | ||
| 4B-4F | geçersiz | ||||||
| 50 | POP | 2 | _anon | . | yığının tepesinden öğeyi kaldır ve at | ||
| 51 | MLOAD | 3*opens in a new tab | ost | mem[ost:ost+32] | ost ofsetindeki bellekten kelime oku | ||
| 52 | MSTORE | 3*opens in a new tab | ost, val | . | mem[ost:ost+32] := val | belleğe bir kelime yaz | |
| 53 | MSTORE8 | 3*opens in a new tab | ost, val | . | mem[ost] := val && 0xFF | belleğe tek bir bayt yaz | |
| 54 | SLOAD | A6opens in a new tab | key | storage[key] | depolamadan kelime oku | ||
| 55 | SSTORE | A7opens in a new tab | key, val | . | storage[key] := val | depolamaya kelime yaz | |
| 56 | JUMP | 8 | dst | . | $pc := dst pc'nin yalnızca dst geçerli bir atlama hedefiyse atandığını işaretle | ||
| 57 | JUMPI | 10 | dst, condition | . | $pc := condition ? dst : $pc + 1` | ||
| 58 | PC | 2 | . | $pc | program sayacı | ||
| 59 | MSIZE | 2 | . | len(mem) | mevcut yürütme bağlamındaki bellek boyutu, bayt cinsinden | ||
| 5A | GAS | 2 | . | gasRemaining | |||
| 5B | JUMPDEST | 1 | geçerli atlama hedefini işaretle | örneğin itme verilerinin içinde olmayan bir atlama hedefi gibi geçerli bir atlama hedefi | |||
| 5C | TLOAD | 100 | key | tstorage[key] | geçici depolamadan kelime oku (EIP-1153opens in a new tab) | ||
| 5D | TSTORE | 100 | key, val | . | tstorage[key] := val | geçici depolamaya kelime yaz (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] | belleği bir alandan diğerine kopyala (EIP-5656opens in a new tab) | |
| 5F | PUSH0 | 2 | . | uint8 | değişmez değer 0'ı yığına it | ||
| 60 | PUSH1 | 3 | . | uint8 | 1 baytlık değeri yığına it | ||
| 61 | PUSH2 | 3 | . | uint16 | 2 baytlık değeri yığına it | ||
| 62 | PUSH3 | 3 | . | uint24 | 3 baytlık değeri yığına it | ||
| 63 | PUSH4 | 3 | . | uint32 | 4 baytlık değeri yığına it | ||
| 64 | PUSH5 | 3 | . | uint40 | 5 baytlık değeri yığına it | ||
| 65 | PUSH6 | 3 | . | uint48 | 6 baytlık değeri yığına it | ||
| 66 | PUSH7 | 3 | . | uint56 | 7 baytlık değeri yığına it | ||
| 67 | PUSH8 | 3 | . | uint64 | 8 baytlık değeri yığına it | ||
| 68 | PUSH9 | 3 | . | uint72 | 9 baytlık değeri yığına it | ||
| 69 | PUSH10 | 3 | . | uint80 | 10 baytlık değeri yığına it | ||
| 6A | PUSH11 | 3 | . | uint88 | 11 baytlık değeri yığına it | ||
| 6B | PUSH12 | 3 | . | uint96 | 12 baytlık değeri yığına it | ||
| 6C | PUSH13 | 3 | . | uint104 | 13 baytlık değeri yığına it | ||
| 6D | PUSH14 | 3 | . | uint112 | 14 baytlık değeri yığına it | ||
| 6E | PUSH15 | 3 | . | uint120 | 15 baytlık değeri yığına it | ||
| 6F | PUSH16 | 3 | . | uint128 | 16 baytlık değeri yığına it | ||
| 70 | PUSH17 | 3 | . | uint136 | 17 baytlık değeri yığına it | ||
| 71 | PUSH18 | 3 | . | uint144 | 18 baytlık değeri yığına it | ||
| 72 | PUSH19 | 3 | . | uint152 | 19 baytlık değeri yığına it | ||
| 73 | PUSH20 | 3 | . | uint160 | 20 baytlık değeri yığına it | ||
| 74 | PUSH21 | 3 | . | uint168 | 21 baytlık değeri yığına it | ||
| 75 | PUSH22 | 3 | . | uint176 | 22 baytlık değeri yığına it | ||
| 76 | PUSH23 | 3 | . | uint184 | 23 baytlık değeri yığına it | ||
| 77 | PUSH24 | 3 | . | uint192 | 24 baytlık değeri yığına it | ||
| 78 | PUSH25 | 3 | . | uint200 | 25 baytlık değeri yığına it | ||
| 79 | PUSH26 | 3 | . | uint208 | 26 baytlık değeri yığına it | ||
| 7A | PUSH27 | 3 | . | uint216 | 27 baytlık değeri yığına it | ||
| 7B | PUSH28 | 3 | . | uint224 | 28 baytlık değeri yığına it | ||
| 7C | PUSH29 | 3 | . | uint232 | 29 baytlık değeri yığına it | ||
| 7D | PUSH30 | 3 | . | uint240 | 30 baytlık değeri yığına it | ||
| 7E | PUSH31 | 3 | . | uint248 | 31 baytlık değeri yığına it | ||
| 7F | PUSH32 | 3 | . | uint256 | 32 baytlık değeri yığına it | ||
| 80 | DUP1 | 3 | a | a, a | yığındaki 1'inci değeri kopyala | ||
| 81 | DUP2 | 3 | _, a | a, _, a | yığındaki 2'nci değeri kopyala | ||
| 82 | DUP3 | 3 | _, _, a | a, _, _, a | yığındaki 3'üncü değeri kopyala | ||
| 83 | DUP4 | 3 | _, _, _, a | a, _, _, _, a | yığındaki 4'üncü değeri kopyala | ||
| 84 | DUP5 | 3 | ..., a | a, ..., a | yığındaki 5'inci değeri kopyala | ||
| 85 | DUP6 | 3 | ..., a | a, ..., a | yığındaki 6'ncı değeri kopyala | ||
| 86 | DUP7 | 3 | ..., a | a, ..., a | yığındaki 7'nci değeri kopyala | ||
| 87 | DUP8 | 3 | ..., a | a, ..., a | yığındaki 8'inci değeri kopyala | ||
| 88 | DUP9 | 3 | ..., a | a, ..., a | yığındaki 9'uncu değeri kopyala | ||
| 89 | DUP10 | 3 | ..., a | a, ..., a | yığındaki 10'uncu değeri kopyala | ||
| 8A | DUP11 | 3 | ..., a | a, ..., a | yığındaki 11'inci değeri kopyala | ||
| 8B | DUP12 | 3 | ..., a | a, ..., a | yığındaki 12'nci değeri kopyala | ||
| 8C | DUP13 | 3 | ..., a | a, ..., a | yığındaki 13'üncü değeri kopyala | ||
| 8D | DUP14 | 3 | ..., a | a, ..., a | yığındaki 14'üncü değeri kopyala | ||
| 8E | DUP15 | 3 | ..., a | a, ..., a | yığındaki 15'inci değeri kopyala | ||
| 8F | DUP16 | 3 | ..., a | a, ..., a | yığındaki 16'ncı değeri kopyala | ||
| 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 | geçersiz | ||||||
| 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 | başarılı | mem[retOst:retOst+retLen-1] := returndata | ||
| F2 | CALLCODE | AAopens in a new tab | gas, addr, val, argOst, argLen, retOst, retLen | başarılı | mem[retOst:retOst+retLen-1] = returndata | DELEGATECALL ile aynı, ancak orijinal msg.sender ve msg.value'yu yaymaz | |
| F3 | RETURN | 0*opens in a new tab | ost, len | . | return mem[ost:ost+len-1] | ||
| F4 | DELEGATECALL | AAopens in a new tab | gas, addr, argOst, argLen, retOst, retLen | başarılı | 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 | geçersiz | ||||||
| FA | STATICCALL | AAopens in a new tab | gas, addr, argOst, argLen, retOst, retLen | başarılı | mem[retOst:retOst+retLen-1] := returndata | ||
| FB-FC | geçersiz | ||||||
| FD | REVERT | 0*opens in a new tab | ost, len | . | revert(mem[ost:ost+len-1]) | ||
| FE | INVALID | AFopens in a new tab | belirlenmiş geçersiz işlem kodu - EIP-141opens in a new tab | ||||
| FF | SELFDESTRUCT | ABopens in a new tab | addr | . | tüm ETH'yi addr adresine gönderir; bir sözleşmenin oluşturulduğu aynı işlemde yürütülürse sözleşmeyi yok eder |