RZ\_ESIL(7) Miscellaneous Information Manual RZ\_ESIL(7)

# [NAME](#NAME)

`rz-esil` — Evaluable Strings Intermediate Language

# [DESCRIPTION](#DESCRIPTION)

ESIL aims to describe a Forth-like representation for every target CPU opcode semantics. ESIL representations can be evaluated (interpreted) in order to emulate individual instructions.

# [SYNTAX](#SYNTAX)

Each command of an ESIL expression is separated by a comma

[`<source0>,<source1>,<operation>`](#_source0_,_source1_,_operation_)

 

[`<source>,<destination>,<operation>`](#_source_,_destination_,_operation_)

 

[`<source_destination>,<operation>`](#_source_destination_,_operation_)

 

# [BASIC OPERATIONS](#BASIC_OPERATIONS)

These operations should be enough to emulate most instructions of any architecture

[`=`](#=)

Set the value of the destination to the value of the source

[`+`](#+)

Add the values of source0 and source1 and push the result on the esil stack

`-`

Subtract the value of source0 from the value of source1 and push the result on the esil stack

[`*`](#*)

Multiply the values of source0 and source1 and push the result on the esil stack

[`/`](#/)

Divide the value of source1 by the value of source0

# [BASIC OPERATIONS EXAMPLES (x86)](#BASIC_OPERATIONS_EXAMPLES_%28x86%29)

`jmp eax -> eax,eip,=`

# [SEE ALSO](#SEE_ALSO)

[rizin(1)](/man/os/rizin/rizin.1)

March 12, 2026 Linux 4.19.0-gvisor

---

Document: rz-esil(7) from rizin 0.9.1-r2 (Chainguard OS)
Source: https://github.com/rizinorg/rizin
