Example #1
0
 /// <summary>
 ///     Create an XCore Memory Operand Value.
 /// </summary>
 /// <param name="disassembler">
 ///     A disassembler.
 /// </param>
 /// <param name="nativeMemoryOperandValue">
 ///     A native XCore memory operand value.
 /// </param>
 internal XCoreMemoryOperandValue(CapstoneDisassembler disassembler, ref NativeXCoreMemoryOperandValue nativeMemoryOperandValue)
 {
     this.Base         = XCoreRegister.TryCreate(disassembler, (XCoreRegisterId)nativeMemoryOperandValue.Base);
     this.Direct       = nativeMemoryOperandValue.Direct;
     this.Displacement = nativeMemoryOperandValue.Displacement;
     this.Index        = XCoreRegister.TryCreate(disassembler, (XCoreRegisterId)nativeMemoryOperandValue.Index);
 }
Example #2
0
        /// <summary>
        ///     Create an XCore Register.
        /// </summary>
        /// <param name="disassembler">
        ///     A disassembler.
        /// </param>
        /// <param name="id">
        ///     The register's unique identifier.
        /// </param>
        /// <returns>
        ///     An XCore register. A null reference if the register's unique identifier is equal to
        ///     <see cref="XCoreRegisterId.Invalid" />.
        /// </returns>
        /// <exception cref="System.ObjectDisposedException">
        ///     Thrown if the disassembler is disposed.
        /// </exception>
        internal static XCoreRegister TryCreate(CapstoneDisassembler disassembler, XCoreRegisterId id)
        {
            XCoreRegister @object = null;

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

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

            return(@object);
        }