- Debugger version (can be found on right hand side of menu bar of debugger).
Current - 2020/02/23
- Operating system version and Service Pack (including 32 or 64 bits).
Win10 Pro x64 1909
Dear x64dbg team,
dear mrexodia,
I was in need to assemble an instruction with mutliple registers and offsets and went into some strange problems. The problem appears on both, x86 and x64 versions but only with XEDParse. asmjit is working fine. (so I think it's better placed here than as an x64dbg issue)
When trying to assemble the following instruction,
x64
cmp word ptr ds:[rbx+rsi+0x1c+0x16], 0x1337
x86
cmp word ptr ds:[ebx+esi+0x1c+0x16], 0x1337)
it assembles to the following instruction,
cmp word ptr ds:[rbx+rsi*1+0x16], 0x1337
the opcodes are fine though (66 81 7C 33 16 37 13), except the byte with the offset that should not be +16 but +32 instead. Even when summing up the offsets by hand and trying to assemble,
cmp word ptr ds:[rbx+rsi+0x32], 0x1337
the offset now ist correct but following instruction will be shown when trying to assemble the instruction,
cmp word ptr ds:[rbx+rsi*1+0x32], 0x1337
I also tried some different instructions, for example
mov ax, word ptr ds:[ebx+esi+0x1c+0x16]
but the same problem appears, he always converts all offset, if more than one is available, except the last one to rsi*1
I hope the problem is explained well enough, in case of any questions feel free to contact me.
Thanks in advance for fixing this issue.
With best regards
John