jbremer / darm

A light-weight and efficient disassembler written in C for the ARMv7 instruction set.
BSD 3-Clause "New" or "Revised" License
214 stars 43 forks source link

decoding returns empty info or string #15

Open pistol opened 11 years ago

pistol commented 11 years ago

Posting based on issue reported by Radu Serban over email.

E16FF000 - MSR SPSF_cxsf, R0 E12FF002 - MSR CPRS_cxsf, R2 E8FDDFFF - LDMFD SP!, {R0-R12, LR-PC}^ - and equivalents with different registers

Adding darm output for above encodings:

>>> darm.disasm_armv7(0xE16FF000)
>>> darm.disasm_armv7(0xE16FF000).__str__()
'None'
>>> darm.disasm_armv7(0xE12FF002)
Darm(instr=I_MSR, instr_type=T_ARM_BRNCHMISC, cond=C_AL, Rn=r2, I=True, rotate=0, imm=3)
>>> darm.disasm_armv7(0xE12FF002).__str__()
''
>>> darm.disasm_armv7(0xE8FDDFFF)
>>> darm.disasm_armv7(0xE8FDDFFF).__str__()
'None'