De basis van Web3- en DApp-ontwikkeling · Les

Opcodes

Bewerkingen op laag niveau

Les 3 van 413 stappen

Opcodes is een gratis De basis van Web3- en DApp-ontwikkeling-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Web3- en DApp-ontwikkeling. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 4 lessen.

De instructieset van de EVM

Op het laagste niveau voert de EVM een reeks opcodes uit — instructies van één byte die elk één taak uitvoeren.

Als u opcodes begrijpt, ziet u wat uw Solidity daadwerkelijk doet en waar het gas naartoe gaat.

Wat is een opcode?

Een opcode (bewerkingscode) is een opdracht van één byte die de EVM uitvoert. Voorbeelden zijn ADD, MUL, PUSH1, SLOAD en JUMP.

Elke opcode heeft een naam, een numerieke waarde en vaste gaskosten.

0x01 = ADD
0x02 = MUL
0x60 = PUSH1
0x54 = SLOAD
0x56 = JUMP

Opcodes voor stackbewerking

Opcodes zoals PUSH, POP, DUP en SWAP beheren de stack.

PUSH voegt een waarde toe, POP verwijdert er een, DUP maakt een item dubbel en SWAP verwisselt twee posities op de stack.

PUSH1 0x0A   // [10]
DUP1         // [10, 10]
PUSH1 0x14   // [10, 10, 20]
SWAP1        // [10, 20, 10]

Rekenkundige opcodes

Rekenkundige opcodes halen operanden van de stack en plaatsen resultaten erop: ADD, SUB, MUL, DIV en MOD.

Alle berekeningen worden uitgevoerd met gehele getallen zonder teken van 256 bits (varianten met teken zijn beschikbaar).

PUSH1 0x09   // [9]
PUSH1 0x04   // [9, 4]
SUB          // [5]   (9 - 4)

Vergelijking en logica

Opcodes zoals LT, GT, EQ, AND, OR en ISZERO verwerken vergelijkingen en bitsgewijze logica.

Ze plaatsen 1 voor waar en 0 voor onwaar op de stack, waarna de besturingsstroom deze waarden gebruikt.

Opcodes voor geheugen en opslag

Opcodes voor gegevensverplaatsing gebruiken de dure locaties:

  • MLOAD / MSTORE — geheugen lezen/schrijven
  • SLOAD / SSTORE — opslag lezen/schrijven

SSTORE is een van de duurste opcodes.

Opcodes voor besturingsstroom

JUMP en JUMPI (voorwaardelijke sprong) verplaatsen de uitvoering naar een JUMPDEST-markering.

Zo implementeert de EVM lussen en if-instructies op bytecodeniveau.

PUSH1 0x10   // jump target
JUMPI        // jump if top of stack != 0
// ... at offset 0x10:
JUMPDEST     // valid landing spot

Omgevingsopcodes

Opcodes zoals CALLER, CALLVALUE, ADDRESS en TIMESTAMP geven toegang tot de context.

CALLER plaatst bijvoorbeeld het adres dat de aanroep heeft gestart op de stack (dit is waar msg.sender naartoe wordt gecompileerd).

Gaskosten per opcode

Elke opcode heeft vastgestelde gaskosten. Goedkope opcodes zoals ADD kosten 3 gas; dure opcodes zoals SSTORE kosten maximaal 20000.

Het totale gas van een transactie is de som van alle opcodes die de transactie uitvoert.

ADD    -> 3 gas
MLOAD  -> 3 gas
SLOAD  -> 2100 gas
SSTORE -> up to 20000 gas

Van Solidity naar opcodes

De Solidity-compiler zet elke instructie op hoog niveau om in veel opcodes.

Een enkele uint x = a + b; wordt PUSH, PUSH, ADD en een MSTORE of SSTORE, afhankelijk van waar x staat.

Alles samenbrengen

Opcodes zijn de elementaire instructies van de EVM voor stack, rekenkunde, logica, geheugen, opslag, besturingsstroom en omgeving.

Elke opcode heeft gaskosten en uw Solidity wordt uiteindelijk een reeks van deze opcodes.

Korte controle

Test uw kennis van opcodes.

Samenvatting: opcodes

U hebt geleerd dat:

  • Opcodes instructies van één byte voor de EVM zijn
  • Ze betrekking hebben op de stack, rekenkunde, logica, geheugen, opslag, besturingsstroom en omgeving
  • SSTORE tot de duurste opcodes behoort
  • Solidity naar veel opcodes wordt gecompileerd

Volgende onderwerp: accounts en toestand.

Gratis beginnen

Leer De basis van Web3- en DApp-ontwikkeling met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
29
Lessen
105

Veelgestelde vragen

Is de les “Opcodes” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Web3- en DApp-ontwikkeling, waaronder “Opcodes”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 4 lessen.

Wat leer ik in “Opcodes”?

Bewerkingen op laag niveau Je oefent met De basis van Web3- en DApp-ontwikkeling door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De basis van Web3- en DApp-ontwikkeling te beginnen?

Ervaring vooraf is niet nodig. De basis van Web3- en DApp-ontwikkeling op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Opcodes”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De basis van Web3- en DApp-ontwikkeling?

Ja. Elke les over De basis van Web3- en DApp-ontwikkeling bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De Ethereum Virtual Machine
  2. Storage, memory en stack
  3. Opcodes
  4. Accounts en state
← Terug naar De basis van Web3- en DApp-ontwikkeling