Opcode-käskyt
Matalan tason operaatiot.
Opcode-käskyt on ilmainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.
EVM:n käskyjoukko
Alimmalla tasollaan EVM suorittaa opkoodien sarjaa — yhden tavun mittaisia käskyjä, joista jokainen tekee yhden asian.
Opkoodien ymmärtäminen paljastaa, mitä Solidity-koodisi todella tekee ja mihin kaasu kuluu.
Mikä on opkoodi?
Opkoodi (operation code) on yhden tavun mittainen komento, jonka EVM suorittaa. Esimerkkejä ovat ADD, MUL, PUSH1, SLOAD ja JUMP.
Jokaisella opkoodilla on nimi, numeerinen arvo ja kiinteä kaasukustannus.
0x01 = ADD
0x02 = MUL
0x60 = PUSH1
0x54 = SLOAD
0x56 = JUMPPinon käsittelyn opkoodit
Opkoodit, kuten PUSH, POP, DUP ja SWAP, hallitsevat pinoa.
PUSH lisää arvon, POP poistaa arvon, DUP monistaa alkion ja SWAP vaihtaa kahden paikkaa pinossa.
PUSH1 0x0A // [10]
DUP1 // [10, 10]
PUSH1 0x14 // [10, 10, 20]
SWAP1 // [10, 20, 10]Aritmeettiset opkoodit
Aritmeettiset opkoodit poistavat operandit pinosta ja lisäävät tulokset sinne: ADD, SUB, MUL, DIV ja MOD.
Kaikki laskutoimitukset tehdään 256-bittisillä etumerkittömillä kokonaisluvuilla (myös etumerkilliset versiot ovat käytettävissä).
PUSH1 0x09 // [9]
PUSH1 0x04 // [9, 4]
SUB // [5] (9 - 4)Vertailu ja logiikka
Opkoodit, kuten LT, GT, EQ, AND, OR ja ISZERO, käsittelevät vertailuja ja bittitason logiikkaa.
Ne lisäävät pinoon arvon 1, jos tulos on tosi, ja arvon 0, jos se on epätosi. Ohjausvirta käyttää näitä arvoja.
Muistin ja tallennustilan opkoodit
Tiedonsiirron opkoodit käsittelevät kalliita sijainteja:
MLOAD/MSTORE— lukevat muistia ja kirjoittavat siihenSLOAD/SSTORE— lukevat tallennustilaa ja kirjoittavat siihen
SSTORE on yksi kalleimmista opkoodeista.
Ohjausvirran opkoodit
JUMP ja JUMPI (ehdollinen hyppy) siirtävät suorituksen JUMPDEST-merkintään.
Näin EVM toteuttaa silmukat ja if-lauseet tavukooditasolla.
PUSH1 0x10 // jump target
JUMPI // jump if top of stack != 0
// ... at offset 0x10:
JUMPDEST // valid landing spotYmpäristön opkoodit
Opkoodit, kuten CALLER, CALLVALUE, ADDRESS ja TIMESTAMP, tuovat suoritusympäristön kontekstin saataville.
Esimerkiksi CALLER lisää pinoon kutsun aloittaneen osoitteen (tähän msg.sender kääntyy).
Opkoodin kaasukustannus
Jokaisella opkoodilla on määritetty kaasukustannus. Edulliset opkoodit, kuten ADD, maksavat 3 kaasua; kalliit, kuten SSTORE, enintään 20000.
Transaktion kokonaiskaasu on kaikkien sen suorittamien opkoodien kustannusten summa.
ADD -> 3 gas
MLOAD -> 3 gas
SLOAD -> 2100 gas
SSTORE -> up to 20000 gasSoliditystä opkoodeiksi
Solidity-kääntäjä muuntaa jokaisen korkean tason lauseen useiksi opkoodeiksi.
Yksittäinen uint x = a + b; muuttuu PUSH-, PUSH-, ADD- ja MSTORE- tai SSTORE-opkoodiksi sen mukaan, missä x sijaitsee.
Kokonaisuuden yhteenveto
Opkoodit ovat EVM:n atomisia käskyjä pinolle, aritmetiikalle, logiikalle, muistille, tallennustilalle, ohjausvirralle ja ympäristölle.
Jokaisella on kaasukustannus, ja Solidity-koodisi muuttuu lopulta niiden muodostamaksi virraksi.
Pikatesti
Testaa opkooditietosi.
Kertaus: opkoodit
Opit seuraavat asiat:
- Opkoodit ovat yhden tavun mittaisia EVM-käskyjä
- Ne kattavat pinon, aritmetiikan, logiikan, muistin, tallennustilan, ohjausvirran ja ympäristön
SSTOREon yksi kalleimmista- Solidity käännetään useiksi opkoodeiksi
Seuraavaksi: tilit ja tila.
Opi Web3:n ja DApp-sovellusten kehityksen perusteet tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 29
- Oppitunnit
- 105
Usein kysytyt kysymykset
Onko oppitunti ”Opcode-käskyt” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Opcode-käskyt”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Web3:n ja DApp-sovellusten kehityksen perusteet-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Opcode-käskyt”?
Matalan tason operaatiot. Harjoittelet Web3:n ja DApp-sovellusten kehityksen perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Web3:n ja DApp-sovellusten kehityksen perusteet-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Web3:n ja DApp-sovellusten kehityksen perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Opcode-käskyt”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunnilla?
Kyllä. Jokainen Web3:n ja DApp-sovellusten kehityksen perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.