0Pricing
Web3 & DApp Development Fundamentals · Lezione

Opcode

Operazioni di basso livello

Opcode è una lezione Web3 & DApp Development Fundamentals gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Web3 & DApp Development Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Web3 & DApp Development Fundamentals include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

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 = JUMP

Stack 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 memory
  • SLOAD / 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 spot

Environment 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 gas

From 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
  • SSTORE is among the most expensive
  • Solidity compiles into many opcodes

Next: accounts and state.

Domande Frequenti

La lezione «Opcode» è gratuita?

Sì — il testo completo di «Opcode» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Web3 & DApp Development Fundamentals, passa a CoddyKit PRO. Il corso Web3 & DApp Development Fundamentals include 4 lezioni in totale.

Cosa imparerò in «Opcode»?

Operazioni di basso livello Eserciti Web3 & DApp Development Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Web3 & DApp Development Fundamentals?

Non è richiesta alcuna esperienza precedente. Web3 & DApp Development Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Opcode»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Web3 & DApp Development Fundamentals?

Sì. Ogni lezione Web3 & DApp Development Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Ethereum Virtual Machine
  2. Storage, memory e stack
  3. Opcode
  4. Account e stato
← Torna a Web3 & DApp Development Fundamentals