7 Comments
User's avatar
Caleb Ogundiya's avatar

“While walking through the EVM playground above you may have noticed a few strange occurrences. First, when we wrote a single byte 0x22 using MLOAD8 to memory location 32 (0x20)“

I think you meant to say MSTORE8 here, not MLOAD8

Expand full comment
Hickup's avatar

Thanks for writing up this series, it's been very enlightening and easy to follow with the playground and comments for each opcode!

FYI, the "Finally an MLOAD loads in the value 0x01 to this memory location 0x120" should be MSTORE.

Expand full comment
malik's avatar

thank you for this

Expand full comment
Michael Tang's avatar

thanks a lot for your elaborate illustration, especially for the EVM playground part which enhance my understanding to what's going on under the EVM hood

Expand full comment
xb@Sin7Y's avatar

Hi, man. Great article! I want to have a cooperation with u on ZKEVM, pls contact me if you are interested in it; email : junecoean512@gmail.com or twitter: https://twitter.com/xbInSin7Y. thnaks u

Expand full comment
3UD's avatar

Awesome series mann!!! best thing ever!!!....

& just a typo in the " EVM Playground when assigning value to b[0], under // push 0x20 = 64 bytes the length of the array",

we PUSH 0x02, I believe you meant PUSH 0x20 (64 bytes, the length of b, just as your opcode comment states), thanks a lot again!!!

Expand full comment
Andy Wang's avatar

Thanks a lot. I'm currently digging into geth source code, and this is so useful for me to understand what's going on in EVM.

Expand full comment