ESIL(7)

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

=   sets the value of the destination to the value of the source

+   adds the values of source0 and source1 and pushes the result on the esil stack

-   subtracts the value of source0 from the value of source1 and pushes the result on the esil stack

*   multiplies the values of source0 and source1 and pushes the result on the esil stack

/   divides the value of source1 by the value of source0

BASIC OPERATIONS EXAMPLES (x86)

jmp eax -> eax,eip,=

SEE ALSO
rizin(1)