about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--miasm2/core/cpu.py4
-rw-r--r--test/arch/x86/arch.py5
2 files changed, 7 insertions, 2 deletions
diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py
index f8fdb4ff..e81c0daa 100644
--- a/miasm2/core/cpu.py
+++ b/miasm2/core/cpu.py
@@ -1164,7 +1164,7 @@ class cls_mn(object):
                 a.expr = expr_simp(a.expr)
 
             c.l = prefix_len + total_l / 8
-            c.b = cls.getbytes(bs, offset, total_l / 8)
+            c.b = cls.getbytes(bs, offset_o, c.l)
             c.offset = offset_o
             c = c.post_dis()
             if c is None:
@@ -1173,7 +1173,7 @@ class cls_mn(object):
             instr = cls.instruction(c.name, mode, c_args,
                                     additional_info=c.additional_info())
             instr.l = prefix_len + total_l / 8
-            instr.b = cls.getbytes(bs, offset, total_l / 8)
+            instr.b = cls.getbytes(bs, offset_o, instr.l)
             instr.offset = offset_o
             instr.get_info(c)
             if c.alias:
diff --git a/test/arch/x86/arch.py b/test/arch/x86/arch.py
index 7ec7b8c8..884d545b 100644
--- a/test/arch/x86/arch.py
+++ b/test/arch/x86/arch.py
@@ -1938,3 +1938,8 @@ import cProfile
 # cProfile.run(r'mn_x86.dis("\x81\x54\x18\xfe\x44\x33\x22\x11", m32)')
 cProfile.run('profile_dis(o)')
 # profile_dis(o)
+
+# Test instruction representation with prefix
+instr_bytes = '\x65\xc7\x00\x09\x00\x00\x00'
+inst = mn_x86.dis(instr_bytes, 32, 0)
+assert(inst.b == instr_bytes)