Opcodes
Opérations de bas niveau
Opcodes est une leçon Web3 & DApp Development Fundamentals gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Web3 & DApp Development Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
The EVM Instruction Set
At its lowest level, the EVM runs a sequence of opcodes — single-byte instructions that each do one thing.
Understanding opcodes reveals what your Solidity actually does and where gas goes.
What Is an Opcode?
An opcode (operation code) is a one-byte command the EVM executes. Examples include ADD, MUL, PUSH1, SLOAD, and JUMP.
Each opcode has a name, a numeric value, and a fixed gas cost.
0x01 = ADD
0x02 = MUL
0x60 = PUSH1
0x54 = SLOAD
0x56 = JUMPStack Manipulation Opcodes
Opcodes like PUSH, POP, DUP, and SWAP manage the stack.
PUSH adds a value, POP removes one, DUP duplicates an item, and SWAP exchanges two stack positions.
PUSH1 0x0A // [10]
DUP1 // [10, 10]
PUSH1 0x14 // [10, 10, 20]
SWAP1 // [10, 20, 10]Arithmetic Opcodes
Arithmetic opcodes pop operands and push results: ADD, SUB, MUL, DIV, and MOD.
All math is done on 256-bit unsigned integers (with signed variants available).
PUSH1 0x09 // [9]
PUSH1 0x04 // [9, 4]
SUB // [5] (9 - 4)Comparison and Logic
Opcodes like LT, GT, EQ, AND, OR, and ISZERO handle comparisons and bitwise logic.
They push 1 for true and 0 for false, which control flow then uses.
Memory and Storage Opcodes
Data movement opcodes touch the costly locations:
MLOAD/MSTORE— read/write memorySLOAD/SSTORE— read/write storage
SSTORE is one of the most expensive opcodes.
Control Flow Opcodes
JUMP and JUMPI (conditional jump) move execution to a JUMPDEST marker.
This is how the EVM implements loops and if-statements at the bytecode level.
PUSH1 0x10 // jump target
JUMPI // jump if top of stack != 0
// ... at offset 0x10:
JUMPDEST // valid landing spotEnvironment Opcodes
Opcodes like CALLER, CALLVALUE, ADDRESS, and TIMESTAMP expose context.
For example, CALLER pushes the address that initiated the call (this is what msg.sender compiles to).
Gas Cost per Opcode
Every opcode has a defined gas cost. Cheap ones like ADD cost 3 gas; expensive ones like SSTORE cost up to 20000.
The total gas of a transaction is the sum of all opcodes it executes.
ADD -> 3 gas
MLOAD -> 3 gas
SLOAD -> 2100 gas
SSTORE -> up to 20000 gasFrom Solidity to Opcodes
The Solidity compiler turns each high-level statement into many opcodes.
A single uint x = a + b; becomes PUSH, PUSH, ADD, and an MSTORE or SSTORE depending on where x lives.
Putting It Together
Opcodes are the EVM's atomic instructions for stack, arithmetic, logic, memory, storage, control flow, and environment.
Each carries a gas cost, and your Solidity ultimately becomes a stream of them.
Quick Check
Test your opcode knowledge.
Recap: Opcodes
You learned that:
- Opcodes are one-byte EVM instructions
- They cover the stack, arithmetic, logic, memory, storage, control flow, and environment
SSTOREis among the most expensive- Solidity compiles into many opcodes
Next: accounts and state.
Questions Fréquemment Posées
La leçon « Opcodes » est-elle gratuite ?
Oui — le texte complet de « Opcodes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Web3 & DApp Development Fundamentals, passe à CoddyKit PRO. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Opcodes » ?
Opérations de bas niveau Tu pratiques Web3 & DApp Development Fundamentals avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Web3 & DApp Development Fundamentals ?
Aucune expérience préalable n'est requise. Web3 & DApp Development Fundamentals sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Opcodes » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Web3 & DApp Development Fundamentals ?
Oui. Chaque leçon Web3 & DApp Development Fundamentals inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.