From 04c919f9d6a8d94b05b0aa91fa529c1e5ba5475e Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Tue, 26 Mar 2013 18:42:14 -0400 Subject: [PATCH] Fix incorrect target address calculation for memory operands. --- src/apps/debugger/arch/x86/disasm/DisassemblerX86.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/apps/debugger/arch/x86/disasm/DisassemblerX86.cpp b/src/apps/debugger/arch/x86/disasm/DisassemblerX86.cpp index e686d7e7f8..a681f238f2 100644 --- a/src/apps/debugger/arch/x86/disasm/DisassemblerX86.cpp +++ b/src/apps/debugger/arch/x86/disasm/DisassemblerX86.cpp @@ -198,6 +198,8 @@ DisassemblerX86::GetInstructionTargetAddress(CpuState* state) const targetAddress += x86State->IntRegisterValue( RegisterNumberFromUdisIndex(fUdisData->operand[0].index)) * fUdisData->operand[0].scale; + if (fUdisData->operand[0].offset != 0) + targetAddress += fUdisData->operand[0].lval.sdword; } break; case UD_OP_JIMM: