diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2015-11-17 15:15:10 +0100 |
|---|---|---|
| committer | serpilliere <serpilliere@users.noreply.github.com> | 2015-11-17 15:15:10 +0100 |
| commit | 87c3fe46c6fbc5649b3a06d91bedfabbe3f11009 (patch) | |
| tree | 6aeaee9c1febf68715359e580a27f8b39a64e95e | |
| parent | a49419dd5e16283b1663181a47cdc85b7eff14dc (diff) | |
| parent | 08e54aa9dd67e85753174242fab356cc2d2767c9 (diff) | |
| download | miasm-87c3fe46c6fbc5649b3a06d91bedfabbe3f11009.tar.gz miasm-87c3fe46c6fbc5649b3a06d91bedfabbe3f11009.zip | |
Merge pull request #278 from commial/fix-x86-string
Fix x86 string
Diffstat (limited to '')
| -rw-r--r-- | miasm2/arch/x86/sem.py | 4 | ||||
| -rw-r--r-- | test/arch/x86/qemu/expected/test_string.exp | 156 | ||||
| -rw-r--r-- | test/test_all.py | 3 |
3 files changed, 81 insertions, 82 deletions
diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py index c39d2583..8a1c3974 100644 --- a/miasm2/arch/x86/sem.py +++ b/miasm2/arch/x86/sem.py @@ -924,7 +924,6 @@ def bswap(ir, instr, a): def cmps(ir, instr, size): - lbl_cmp = m2_expr.ExprId(ir.gen_label(), ir.IRDst.size) lbl_df_0 = m2_expr.ExprId(ir.gen_label(), ir.IRDst.size) lbl_df_1 = m2_expr.ExprId(ir.gen_label(), ir.IRDst.size) lbl_next = m2_expr.ExprId(ir.get_next_label(instr), ir.IRDst.size) @@ -933,7 +932,7 @@ def cmps(ir, instr, size): a = m2_expr.ExprMem(mRDI[instr.mode][:s], size) b = m2_expr.ExprMem(mRSI[instr.mode][:s], size) - e, extra = l_cmp(ir, instr, a, b) + e, _ = l_cmp(ir, instr, b, a) e0 = [] e0.append(m2_expr.ExprAff(a.arg, @@ -957,7 +956,6 @@ def cmps(ir, instr, size): def scas(ir, instr, size): - lbl_cmp = m2_expr.ExprId(ir.gen_label(), ir.IRDst.size) lbl_df_0 = m2_expr.ExprId(ir.gen_label(), ir.IRDst.size) lbl_df_1 = m2_expr.ExprId(ir.gen_label(), ir.IRDst.size) lbl_next = m2_expr.ExprId(ir.get_next_label(instr), ir.IRDst.size) diff --git a/test/arch/x86/qemu/expected/test_string.exp b/test/arch/x86/qemu/expected/test_string.exp index f3ffbb17..1087650a 100644 --- a/test/arch/x86/qemu/expected/test_string.exp +++ b/test/arch/x86/qemu/expected/test_string.exp @@ -1,78 +1,78 @@ -stosb ESI=0805b980 EDI=0805b991 EAX=12345678 ECX=00000011 EFL=0000 -stosw ESI=0805b980 EDI=0805b992 EAX=12345678 ECX=00000011 EFL=0000 -stosl ESI=0805b980 EDI=0805b994 EAX=12345678 ECX=00000011 EFL=0000 -stosb ESI=0805b980 EDI=0805b98f EAX=12345678 ECX=00000011 EFL=0000 -stosw ESI=0805b980 EDI=0805b98e EAX=12345678 ECX=00000011 EFL=0000 -stosl ESI=0805b980 EDI=0805b98c EAX=12345678 ECX=00000011 EFL=0000 -rep stosb ESI=0805b980 EDI=0805b9a1 EAX=12345678 ECX=00000000 EFL=0000 -rep stosw ESI=0805b980 EDI=0805b9b2 EAX=12345678 ECX=00000000 EFL=0000 -rep stosl ESI=0805b980 EDI=0805b9d4 EAX=12345678 ECX=00000000 EFL=0000 -rep stosb ESI=0805b980 EDI=0805b97f EAX=12345678 ECX=00000000 EFL=0000 -rep stosw ESI=0805b980 EDI=0805b96e EAX=12345678 ECX=00000000 EFL=0000 -rep stosl ESI=0805b980 EDI=0805b94c EAX=12345678 ECX=00000000 EFL=0000 -lodsb ESI=0805b981 EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsw ESI=0805b982 EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsl ESI=0805b984 EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsb ESI=0805b97f EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsw ESI=0805b97e EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsl ESI=0805b97c EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -rep lodsb ESI=0805b991 EDI=0805b990 EAX=12345678 ECX=00000000 EFL=0000 -rep lodsw ESI=0805b9a2 EDI=0805b990 EAX=12345678 ECX=00000000 EFL=0000 -rep lodsl ESI=0805b9c4 EDI=0805b990 EAX=12345678 ECX=00000000 EFL=0000 -rep lodsb ESI=0805b96f EDI=0805b990 EAX=12345678 ECX=00000000 EFL=0000 -rep lodsw ESI=0805b95e EDI=0805b990 EAX=12345678 ECX=00000000 EFL=0000 -rep lodsl ESI=0805b93c EDI=0805b990 EAX=19181716 ECX=00000000 EFL=0000 -movsb ESI=0805b981 EDI=0805b991 EAX=12345678 ECX=00000011 EFL=0000 -movsw ESI=0805b982 EDI=0805b992 EAX=12345678 ECX=00000011 EFL=0000 -movsl ESI=0805b984 EDI=0805b994 EAX=12345678 ECX=00000011 EFL=0000 -movsb ESI=0805b97f EDI=0805b98f EAX=12345678 ECX=00000011 EFL=0000 -movsw ESI=0805b97e EDI=0805b98e EAX=12345678 ECX=00000011 EFL=0000 -movsl ESI=0805b97c EDI=0805b98c EAX=12345678 ECX=00000011 EFL=0000 -rep movsb ESI=0805b991 EDI=0805b9a1 EAX=12345678 ECX=00000000 EFL=0000 -rep movsw ESI=0805b9a2 EDI=0805b9b2 EAX=12345678 ECX=00000000 EFL=0000 -rep movsl ESI=0805b9c4 EDI=0805b9d4 EAX=12345678 ECX=00000000 EFL=0000 -rep movsb ESI=0805b96f EDI=0805b97f EAX=12345678 ECX=00000000 EFL=0000 -rep movsw ESI=0805b95e EDI=0805b96e EAX=12345678 ECX=00000000 EFL=0000 -rep movsl ESI=0805b93c EDI=0805b94c EAX=12345678 ECX=00000000 EFL=0000 -lodsb ESI=0805b981 EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsw ESI=0805b982 EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsl ESI=0805b984 EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsb ESI=0805b97f EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsw ESI=0805b97e EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -lodsl ESI=0805b97c EDI=0805b990 EAX=12345678 ECX=00000011 EFL=0000 -scasb ESI=0805b980 EDI=0805b991 EAX=12345678 ECX=00000011 EFL=0044 -scasw ESI=0805b980 EDI=0805b992 EAX=12345678 ECX=00000011 EFL=0044 -scasl ESI=0805b980 EDI=0805b994 EAX=12345678 ECX=00000011 EFL=0044 -scasb ESI=0805b980 EDI=0805b98f EAX=12345678 ECX=00000011 EFL=0044 -scasw ESI=0805b980 EDI=0805b98e EAX=12345678 ECX=00000011 EFL=0044 -scasl ESI=0805b980 EDI=0805b98c EAX=12345678 ECX=00000011 EFL=0044 -repz scasb ESI=0805b980 EDI=0805b992 EAX=12345678 ECX=0000000f EFL=0004 -repz scasw ESI=0805b980 EDI=0805b994 EAX=12345678 ECX=0000000f EFL=0004 -repz scasl ESI=0805b980 EDI=0805b9d4 EAX=12345678 ECX=00000000 EFL=0044 -repz scasb ESI=0805b980 EDI=0805b98e EAX=12345678 ECX=0000000f EFL=0004 -repz scasw ESI=0805b980 EDI=0805b98c EAX=12345678 ECX=0000000f EFL=0004 -repz scasl ESI=0805b980 EDI=0805b958 EAX=12345678 ECX=00000003 EFL=0085 -repnz scasb ESI=0805b980 EDI=0805b991 EAX=12345678 ECX=00000010 EFL=0044 -repnz scasw ESI=0805b980 EDI=0805b992 EAX=12345678 ECX=00000010 EFL=0044 -repnz scasl ESI=0805b980 EDI=0805b994 EAX=12345678 ECX=00000010 EFL=0044 -repnz scasb ESI=0805b980 EDI=0805b98f EAX=12345678 ECX=00000010 EFL=0044 -repnz scasw ESI=0805b980 EDI=0805b98e EAX=12345678 ECX=00000010 EFL=0044 -repnz scasl ESI=0805b980 EDI=0805b98c EAX=12345678 ECX=00000010 EFL=0044 -cmpsb ESI=0805b981 EDI=0805b991 EAX=12345678 ECX=00000011 EFL=0044 -cmpsw ESI=0805b982 EDI=0805b992 EAX=12345678 ECX=00000011 EFL=0044 -cmpsl ESI=0805b984 EDI=0805b994 EAX=12345678 ECX=00000011 EFL=0044 -cmpsb ESI=0805b97f EDI=0805b98f EAX=12345678 ECX=00000011 EFL=0044 -cmpsw ESI=0805b97e EDI=0805b98e EAX=12345678 ECX=00000011 EFL=0044 -cmpsl ESI=0805b97c EDI=0805b98c EAX=12345678 ECX=00000011 EFL=0044 -repz cmpsb ESI=0805b991 EDI=0805b9a1 EAX=12345678 ECX=00000000 EFL=0044 -repz cmpsw ESI=0805b9a2 EDI=0805b9b2 EAX=12345678 ECX=00000000 EFL=0044 -repz cmpsl ESI=0805b9c4 EDI=0805b9d4 EAX=12345678 ECX=00000000 EFL=0044 -repz cmpsb ESI=0805b96f EDI=0805b97f EAX=12345678 ECX=00000000 EFL=0044 -repz cmpsw ESI=0805b95e EDI=0805b96e EAX=12345678 ECX=00000000 EFL=0044 -repz cmpsl ESI=0805b958 EDI=0805b968 EAX=12345678 ECX=00000007 EFL=0014 -repnz cmpsb ESI=0805b981 EDI=0805b991 EAX=12345678 ECX=00000010 EFL=0044 -repnz cmpsw ESI=0805b982 EDI=0805b992 EAX=12345678 ECX=00000010 EFL=0044 -repnz cmpsl ESI=0805b984 EDI=0805b994 EAX=12345678 ECX=00000010 EFL=0044 -repnz cmpsb ESI=0805b97f EDI=0805b98f EAX=12345678 ECX=00000010 EFL=0044 -repnz cmpsw ESI=0805b97e EDI=0805b98e EAX=12345678 ECX=00000010 EFL=0044 -repnz cmpsl ESI=0805b97c EDI=0805b98c EAX=12345678 ECX=00000010 EFL=0044 +stosb ESI=0805a980 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0000 +stosw ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0000 +stosl ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0000 +stosb ESI=0805a980 EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0000 +stosw ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0000 +stosl ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0000 +rep stosb ESI=0805a980 EDI=0805a9a1 EAX=12345678 ECX=00000000 EFL=0000 +rep stosw ESI=0805a980 EDI=0805a9b2 EAX=12345678 ECX=00000000 EFL=0000 +rep stosl ESI=0805a980 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0000 +rep stosb ESI=0805a980 EDI=0805a97f EAX=12345678 ECX=00000000 EFL=0000 +rep stosw ESI=0805a980 EDI=0805a96e EAX=12345678 ECX=00000000 EFL=0000 +rep stosl ESI=0805a980 EDI=0805a94c EAX=12345678 ECX=00000000 EFL=0000 +lodsb ESI=0805a981 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsw ESI=0805a982 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsl ESI=0805a984 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsb ESI=0805a97f EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsw ESI=0805a97e EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsl ESI=0805a97c EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +rep lodsb ESI=0805a991 EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000 +rep lodsw ESI=0805a9a2 EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000 +rep lodsl ESI=0805a9c4 EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000 +rep lodsb ESI=0805a96f EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000 +rep lodsw ESI=0805a95e EDI=0805a990 EAX=12345678 ECX=00000000 EFL=0000 +rep lodsl ESI=0805a93c EDI=0805a990 EAX=19181716 ECX=00000000 EFL=0000 +movsb ESI=0805a981 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0000 +movsw ESI=0805a982 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0000 +movsl ESI=0805a984 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0000 +movsb ESI=0805a97f EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0000 +movsw ESI=0805a97e EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0000 +movsl ESI=0805a97c EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0000 +rep movsb ESI=0805a991 EDI=0805a9a1 EAX=12345678 ECX=00000000 EFL=0000 +rep movsw ESI=0805a9a2 EDI=0805a9b2 EAX=12345678 ECX=00000000 EFL=0000 +rep movsl ESI=0805a9c4 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0000 +rep movsb ESI=0805a96f EDI=0805a97f EAX=12345678 ECX=00000000 EFL=0000 +rep movsw ESI=0805a95e EDI=0805a96e EAX=12345678 ECX=00000000 EFL=0000 +rep movsl ESI=0805a93c EDI=0805a94c EAX=12345678 ECX=00000000 EFL=0000 +lodsb ESI=0805a981 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsw ESI=0805a982 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsl ESI=0805a984 EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsb ESI=0805a97f EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsw ESI=0805a97e EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +lodsl ESI=0805a97c EDI=0805a990 EAX=12345678 ECX=00000011 EFL=0000 +scasb ESI=0805a980 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0044 +scasw ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0044 +scasl ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0044 +scasb ESI=0805a980 EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0044 +scasw ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0044 +scasl ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0044 +repz scasb ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=0000000f EFL=0004 +repz scasw ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=0000000f EFL=0004 +repz scasl ESI=0805a980 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0044 +repz scasb ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=0000000f EFL=0004 +repz scasw ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=0000000f EFL=0004 +repz scasl ESI=0805a980 EDI=0805a958 EAX=12345678 ECX=00000003 EFL=0085 +repnz scasb ESI=0805a980 EDI=0805a991 EAX=12345678 ECX=00000010 EFL=0044 +repnz scasw ESI=0805a980 EDI=0805a992 EAX=12345678 ECX=00000010 EFL=0044 +repnz scasl ESI=0805a980 EDI=0805a994 EAX=12345678 ECX=00000010 EFL=0044 +repnz scasb ESI=0805a980 EDI=0805a98f EAX=12345678 ECX=00000010 EFL=0044 +repnz scasw ESI=0805a980 EDI=0805a98e EAX=12345678 ECX=00000010 EFL=0044 +repnz scasl ESI=0805a980 EDI=0805a98c EAX=12345678 ECX=00000010 EFL=0044 +cmpsb ESI=0805a981 EDI=0805a991 EAX=12345678 ECX=00000011 EFL=0044 +cmpsw ESI=0805a982 EDI=0805a992 EAX=12345678 ECX=00000011 EFL=0044 +cmpsl ESI=0805a984 EDI=0805a994 EAX=12345678 ECX=00000011 EFL=0044 +cmpsb ESI=0805a97f EDI=0805a98f EAX=12345678 ECX=00000011 EFL=0044 +cmpsw ESI=0805a97e EDI=0805a98e EAX=12345678 ECX=00000011 EFL=0044 +cmpsl ESI=0805a97c EDI=0805a98c EAX=12345678 ECX=00000011 EFL=0044 +repz cmpsb ESI=0805a991 EDI=0805a9a1 EAX=12345678 ECX=00000000 EFL=0044 +repz cmpsw ESI=0805a9a2 EDI=0805a9b2 EAX=12345678 ECX=00000000 EFL=0044 +repz cmpsl ESI=0805a9c4 EDI=0805a9d4 EAX=12345678 ECX=00000000 EFL=0044 +repz cmpsb ESI=0805a96f EDI=0805a97f EAX=12345678 ECX=00000000 EFL=0044 +repz cmpsw ESI=0805a95e EDI=0805a96e EAX=12345678 ECX=00000000 EFL=0044 +repz cmpsl ESI=0805a958 EDI=0805a968 EAX=12345678 ECX=00000007 EFL=0014 +repnz cmpsb ESI=0805a981 EDI=0805a991 EAX=12345678 ECX=00000010 EFL=0044 +repnz cmpsw ESI=0805a982 EDI=0805a992 EAX=12345678 ECX=00000010 EFL=0044 +repnz cmpsl ESI=0805a984 EDI=0805a994 EAX=12345678 ECX=00000010 EFL=0044 +repnz cmpsb ESI=0805a97f EDI=0805a98f EAX=12345678 ECX=00000010 EFL=0044 +repnz cmpsw ESI=0805a97e EDI=0805a98e EAX=12345678 ECX=00000010 EFL=0044 +repnz cmpsl ESI=0805a97c EDI=0805a98c EAX=12345678 ECX=00000010 EFL=0044 diff --git a/test/test_all.py b/test/test_all.py index 94f3d8ca..8c1cf3f8 100644 --- a/test/test_all.py +++ b/test/test_all.py @@ -109,8 +109,9 @@ QEMU_TESTS = { "conv": ("tcc", "python"), "bcd": ("tcc", "python"), "xchg": ("tcc", "python"), + "string": ("tcc", "python"), # Unsupported - # "floats", "string", "misc", "segs", "code16", "exceptions", + # "floats", "misc", "segs", "code16", "exceptions", # "single_step" } |