2016-01-20 01:22:00 +00:00
.TH ESIL 7
.SH NAME
2016-09-28 17:17:43 +00:00
ESIL \- Evaluable Strings Intermediate Language
2016-01-20 01:22:00 +00:00
.SH 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.
.SH SYNTAX
Each command of an ESIL expression is separated by a comma
2016-01-20 13:24:44 +00:00
.IP <source0>,<source1>,<operation>
2016-01-20 01:22:00 +00:00
.IP <source>,<destination>,<operation>
.IP <source_destination>,<operation>
2016-01-20 13:24:44 +00:00
.SH BASIC OPERATIONS
These operations should be enough to emulate most instructions of any architecture
.IP =
sets the value of the destination to the value of the source
.IP +
adds the values of source0 and source1 and pushes the result on the esil stack
.IP -
subtracts the value of source0 from the value of source1 and pushes the result on the esil stack
.IP *
multiplies the values of source0 and source1 and pushes the result on the esil stack
.IP /
divides the value of source1 by the value of source0
.SH BASIC OPERATIONS EXAMPLES (x86)
.IP "jmp eax -> eax,eip,="
2016-01-20 01:22:00 +00:00
.SH "SEE ALSO"
.BR radare2 (1)