Chapter 11: Assembly Programming
Solidity is a high-level language. A Solidity compiler does not generate assembly code; instead, it generates Intermediate Code (IL). This IL code is understood by the Ethereum Virtual Machine (EVM).
The EVM, on the other hand, does not understand Solidity constructs. It loads the IL code and executes it by interpreting it. This IL code is known as bytecode within the Ethereum ecosystem.
All activities, including contract deployment, contract function invocation, and the simple transfer of Ether between accounts, lead to bytecode execution by the EVM. Bytecode comprises instructions in hexadecimal format. The instructions or bytecode built by Solidity compiler (solc) comprise a series of opcodes along with their input values in hexadecimal format.
Opcodes are human-readable; however, they have equivalent hexadecimal representation, which is what we see as bytecode. It's easier to think of opcodes as functions that accept arguments and...