# Native EVM Instructions

***

Such instructions are grouped into the following categories according to [the original reference](https://www.evm.codes/):

* [Arithmetic](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/arithmetic)
* [Bitwise](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/bitwise)
* [Block](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/block)
* [Call](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/call)
* [Create](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/create)
* [Environment](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/environment)
* [Logging](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/logging)
* [Logical](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/logical)
* [Memory](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/memory)
* [Return](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/return)
* [SHA3](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/sha3)
* [Stack](https://docs.zksync.io/zk-stack/components/compiler/specification/instructions/evm/stack)

#### EraVM Assembly <a href="#eravm-assembly" id="eravm-assembly"></a>

Assembly emitted for LLVM standard library functions depends on available optimizations which differ between versions. If there is no assembly example under an instruction, compile a reproducing contract with the latest version of `zksolc`.

EraVM specification contains a list of [all EraVM instructions (see the table of contents)](https://matter-labs.github.io/eravm-spec/spec.html).
