Esempio n. 1
0
        /// <summary>
        ///     Create an ARM64 Register.
        /// </summary>
        /// <param name="disassembler">
        ///     A disassembler.
        /// </param>
        /// <param name="id">
        ///     The register's unique identifier.
        /// </param>
        /// <returns>
        ///     An ARM64 register.
        /// </returns>
        /// <exception cref="System.ObjectDisposedException">
        ///     Thrown if the disassembler is disposed.
        /// </exception>
        internal static Arm64Register TryCreate(CapstoneDisassembler disassembler, Arm64RegisterId id)
        {
            Arm64Register @object = null;

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

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

            return(@object);
        }
Esempio n. 2
0
 /// <summary>
 ///     Create an ARM64 Memory Operand Value.
 /// </summary>
 /// <param name="disassembler">
 ///     A disassembler.
 /// </param>
 /// <param name="nativeMemoryOperandValue">
 ///     A native ARM64 memory operand value.
 /// </param>
 internal Arm64MemoryOperandValue(CapstoneDisassembler disassembler, ref NativeArm64MemoryOperandValue nativeMemoryOperandValue)
 {
     this.Base         = Arm64Register.TryCreate(disassembler, nativeMemoryOperandValue.Base);
     this.Displacement = nativeMemoryOperandValue.Displacement;
     this.Index        = Arm64Register.TryCreate(disassembler, nativeMemoryOperandValue.Index);
 }