From 2bc1d7810dd07f9a0401984125fc82ac5ac7d9aa Mon Sep 17 00:00:00 2001 From: Camille Mougey Date: Fri, 19 Sep 2014 13:58:03 +0200 Subject: Expression examples: Rename examples with meaningfull names --- example/expression/get_read_write.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 example/expression/get_read_write.py (limited to 'example/expression/get_read_write.py') diff --git a/example/expression/get_read_write.py b/example/expression/get_read_write.py new file mode 100644 index 00000000..faa3f9df --- /dev/null +++ b/example/expression/get_read_write.py @@ -0,0 +1,26 @@ +from miasm2.arch.x86.arch import mn_x86 +from miasm2.expression.expression import get_rw +from miasm2.arch.x86.ira import ir_a_x86_32 +print """ +Simple expression manipulation demo. +Get read/written registers for a given instruction +""" + +arch = mn_x86 +ir_arch = ir_a_x86_32() + +l = arch.fromstring('LODSB', 32) +l.offset, l.l = 0, 15 +ir_arch.add_instr(l) + +print '*' * 80 +for lbl, b in ir_arch.blocs.items(): + print b + for irs in b.irs: + o_r, o_w = get_rw(irs) + print 'read: ', [str(x) for x in o_r] + print 'written:', [str(x) for x in o_w] + print +ir_arch.gen_graph() +g = ir_arch.graph() +open('graph_instr.txt', 'w').write(g) -- cgit 1.4.1