mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-06-20 08:18:36 +03:00
Fix x86 disassembler issues with direct memory addressing and immediate value formatting
This commit is contained in:
@ -27,6 +27,31 @@ public abstract class MemoryOperand : Operand
|
||||
/// <returns>The segment prefix string</returns>
|
||||
protected string GetSegmentPrefix()
|
||||
{
|
||||
return SegmentOverride != null ? $"{SegmentOverride}:" : "";
|
||||
// Format changed to match expected test output: "dword ptr es:[ebp+0x10]" instead of "es:dword ptr [ebp+0x10]"
|
||||
return "";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the size prefix string for display (e.g., "byte ptr", "word ptr", "dword ptr")
|
||||
/// </summary>
|
||||
/// <returns>The size prefix string</returns>
|
||||
protected string GetSizePrefix()
|
||||
{
|
||||
string sizePrefix = Size switch
|
||||
{
|
||||
8 => "byte ptr ",
|
||||
16 => "word ptr ",
|
||||
32 => "dword ptr ",
|
||||
64 => "qword ptr ",
|
||||
_ => ""
|
||||
};
|
||||
|
||||
// If we have a segment override, include it in the format "dword ptr es:[reg]"
|
||||
if (SegmentOverride != null)
|
||||
{
|
||||
return $"{sizePrefix}{SegmentOverride}:";
|
||||
}
|
||||
|
||||
return sizePrefix;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user