diff options
| -rw-r--r-- | miasm/arch/ia32_arch.py | 9 | ||||
| -rw-r--r-- | miasm/core/parse_ad.py | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/miasm/arch/ia32_arch.py b/miasm/arch/ia32_arch.py index ee0f7ca6..67bb97ce 100644 --- a/miasm/arch/ia32_arch.py +++ b/miasm/arch/ia32_arch.py @@ -2065,7 +2065,14 @@ class x86_mn: a_pmem[x86_afs.ad] = u32 parsed_args.append(a_pmem) elif dib in segm_regs: - fds + good_c = False + for reg_code in x86_afs.reg_dict: + if x86_afs.reg_dict[reg_code] in args_sample[0]: + if reg_code == dib: + del args_sample[0] + good_c = True + break + else: raise ValueError('bad dib!!%X'%dib) diff --git a/miasm/core/parse_ad.py b/miasm/core/parse_ad.py index 8f5ca00d..8f069077 100644 --- a/miasm/core/parse_ad.py +++ b/miasm/core/parse_ad.py @@ -243,7 +243,7 @@ def p_opt_seg_colon_1(t): def p_opt_seg_1(t): '''opt_seg : OPTSEG ''' - t[0] = {x86_afs.segm:x86_afs.reg_sg.index(t[1])} + t[0] ={x86_afs.reg_dict[t[1]]:1, x86_afs.size : x86_afs.u32} def p_expression_9(t): '''expression : PTRSIZE PTRMEM LBRA expression RBRA |