Esempio n. 1
0
        /// <summary>
        ///     Create a MIPS Register.
        /// </summary>
        /// <param name="disassembler">
        ///     A disassembler.
        /// </param>
        /// <param name="id">
        ///     The register's unique identifier.
        /// </param>
        /// <returns>
        ///     A MIPS register. A null reference if the register's unique identifier is equal to
        ///     <see cref="MipsRegisterId.Invalid" />.
        /// </returns>
        /// <exception cref="System.ObjectDisposedException">
        ///     Thrown if the disassembler is disposed.
        /// </exception>
        internal static MipsRegister TryCreate(CapstoneDisassembler disassembler, MipsRegisterId id)
        {
            MipsRegister @object = null;

            if (id != MipsRegisterId.Invalid)
            {
                // ...
                //
                // Throws an exception if the operation fails.
                var name = NativeCapstone.GetRegisterName(disassembler.Handle, (int)id);

                @object = new MipsRegister(id, name);
            }

            return(@object);
        }
 /// <summary>
 ///     Create a MIPS Memory Operand Value.
 /// </summary>
 /// <param name="disassembler">
 ///     A disassembler.
 /// </param>
 /// <param name="nativeMemoryOperandValue">
 ///     A native MIPS memory operand value.
 /// </param>
 internal MipsMemoryOperandValue(CapstoneDisassembler disassembler, ref NativeMipsMemoryOperandValue nativeMemoryOperandValue)
 {
     this.Base         = MipsRegister.TryCreate(disassembler, nativeMemoryOperandValue.Base);
     this.Displacement = nativeMemoryOperandValue.Displacement;
 }