gdabah / distorm

Powerful Disassembler Library For x86/AMD64
Other
1.26k stars 238 forks source link

Distorm cannot disassemble based on processor; struct DecodeType is not specific enough #24

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Disassemble 8086 (16-bit) code.
2. Disassemble 0x6C in 16-bit mode.
3. The INS - Input String from Port (80188+) opcode is disassembled, even 
though it doesn't exist on the 8086 processor.

What is the expected output? What do you see instead?
We do not expect to see 80186 opcodes disassembled when trying to disassemble 
8086 code. For example, 6C 22 21 in 8086 is:
DB      6C
AND     AH,[BX+DI]
but in 80186 it is:
INS     [ES:DI], DX

What version of the product are you using? On what operating system?
r165

Please provide any additional information below.

The _DecodeType is not a sufficient data type for determining how to 
disassemble.  Instead, a ProcessorType should instead be used.  This would 
would allow the disassembler to accommodate all x86 opcode sets, as well as any 
other future processors.  It would be rather easy to convert to this new data 
type: the existing DecodeTypes would simply convert to 80186, 80386, and 80686 
(or something similar), without any other code changes.

Original issue reported on code.google.com by matthew....@gmail.com on 30 Apr 2011 at 2:42

GoogleCodeExporter commented 9 years ago
Doesn't seem important, not many requests for this feature.

Original comment by distorm@gmail.com on 29 Oct 2011 at 6:20