---
name: "rz-esil"
section: "7"
platform: "linux"
package: "rizin"
version: "0.8.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rz-esil"
---

# rz-esil(7)

Evaluable Strings Intermediate Language

## NAME

ESIL - Evaluable Strings Intermediate Language

## 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

Each command of an ESIL expression is separated by a comma

- \<source0\>,\<source1\>,\<operation\>

  - \<source\>,\<destination\>,\<operation\>

  - \<source\_destination\>,\<operation\>

  ## 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)

- jmp eax -\> eax,eip,=

  ## SEE ALSO

[**rizin**(1)](/rizin/1.md)
