namespace X86Disassembler.X86.Operands; /// /// Represents a memory operand with a base register in an x86 instruction (e.g., [eax]) /// public class BaseRegisterMemoryOperand : MemoryOperand { /// /// Gets or sets the base register /// public RegisterIndex BaseRegister { get; set; } /// /// Initializes a new instance of the BaseRegisterMemoryOperand class /// /// The base register /// The size of the memory access in bits /// Optional segment override public BaseRegisterMemoryOperand(RegisterIndex baseRegister, int size = 32, string? segmentOverride = null) : base(size, segmentOverride) { Type = OperandType.MemoryBaseReg; BaseRegister = baseRegister; } /// /// Returns a string representation of this operand /// public override string ToString() { var registerName = ModRMDecoder.GetRegisterName(BaseRegister, 32); return $"{GetSizePrefix()}[{registerName}]"; } }