/// <summary> /// Create an M68K Memory Operand Value. /// </summary> /// <param name="disassembler"> /// A disassembler. /// </param> /// <param name="nativeMemoryOperandValue"> /// A native M68K memory operand value. /// </param> internal M68KMemoryOperandValue(CapstoneDisassembler disassembler, ref NativeM68KMemoryOperandValue nativeMemoryOperandValue) { this.Base = M68KRegister.TryCreate(disassembler, nativeMemoryOperandValue.Base); this.BitField = nativeMemoryOperandValue.BitField; this.Displacement = nativeMemoryOperandValue.Displacement; this.Index = M68KRegister.TryCreate(disassembler, nativeMemoryOperandValue.Index); this.IndexSize = nativeMemoryOperandValue.IndexSize; this.IndirectBase = M68KRegister.TryCreate(disassembler, nativeMemoryOperandValue.IndirectBase); this.IndirectDisplacement = nativeMemoryOperandValue.IndirectDisplacement; this.Offset = nativeMemoryOperandValue.Offset; this.OutDisplacement = nativeMemoryOperandValue.OutDisplacement; this.Scale = nativeMemoryOperandValue.Scale; this.Width = nativeMemoryOperandValue.Width; }
/// <summary> /// Create an M68K Register. /// </summary> /// <param name="disassembler"> /// A disassembler. /// </param> /// <param name="id"> /// The register's unique identifier. /// </param> /// <returns> /// An M68K register. A null reference if the register's unique identifier is equal to /// <see cref="M68KRegisterId.Invalid" />. /// </returns> /// <exception cref="System.ObjectDisposedException"> /// Thrown if the disassembler is disposed. /// </exception> internal static M68KRegister TryCreate(CapstoneDisassembler disassembler, M68KRegisterId id) { M68KRegister @object = null; if (id != M68KRegisterId.Invalid) { // ... // // Throws an exception if the operation fails. var name = NativeCapstone.GetRegisterName(disassembler.Handle, (int)id); @object = new M68KRegister(id, name); } return(@object); }