[][src]Struct iced_x86::RegisterInfo

pub struct RegisterInfo { /* fields omitted */ }

Register information

Methods

impl RegisterInfo[src]

#[must_use]pub fn register(&self) -> Register[src]

Gets the register

Examples

use iced_x86::*;
let info = Register::EAX.info();
assert_eq!(Register::EAX, info.register());

#[must_use]pub fn base(&self) -> Register[src]

Gets the base register, eg. AL, AX, EAX, RAX, MM0, XMM0, YMM0, ZMM0, ES

Examples

use iced_x86::*;
let info = Register::GS.info();
assert_eq!(Register::ES, info.base());
let info = Register::RDX.info();
assert_eq!(Register::RAX, info.base());
let info = Register::XMM13.info();
assert_eq!(Register::XMM0, info.base());
let info = Register::YMM13.info();
assert_eq!(Register::YMM0, info.base());
let info = Register::ZMM13.info();
assert_eq!(Register::ZMM0, info.base());

#[must_use]pub fn number(&self) -> usize[src]

The register number (index) relative to base(), eg. 0-15, or 0-31, or if 8-bit GPR, 0-19

Examples

use iced_x86::*;
let info = Register::GS.info();
assert_eq!(5, info.number());
let info = Register::RDX.info();
assert_eq!(2, info.number());
let info = Register::XMM13.info();
assert_eq!(13, info.number());
let info = Register::YMM13.info();
assert_eq!(13, info.number());
let info = Register::ZMM13.info();
assert_eq!(13, info.number());

#[must_use]pub fn full_register(&self) -> Register[src]

The full register that this one is a part of, eg. CL/CH/CX/ECX/RCX -> RCX, XMM11/YMM11/ZMM11 -> ZMM11

use iced_x86::*;
let info = Register::GS.info();
assert_eq!(Register::GS, info.full_register());
let info = Register::BH.info();
assert_eq!(Register::RBX, info.full_register());
let info = Register::DX.info();
assert_eq!(Register::RDX, info.full_register());
let info = Register::ESP.info();
assert_eq!(Register::RSP, info.full_register());
let info = Register::RCX.info();
assert_eq!(Register::RCX, info.full_register());
let info = Register::XMM3.info();
assert_eq!(Register::ZMM3, info.full_register());
let info = Register::YMM3.info();
assert_eq!(Register::ZMM3, info.full_register());
let info = Register::ZMM3.info();
assert_eq!(Register::ZMM3, info.full_register());

#[must_use]pub fn full_register32(&self) -> Register[src]

Gets the full register that this one is a part of, except if it's a GPR in which case the 32-bit register is returned, eg. CL/CH/CX/ECX/RCX -> ECX, XMM11/YMM11/ZMM11 -> ZMM11

use iced_x86::*;
let info = Register::GS.info();
assert_eq!(Register::GS, info.full_register32());
let info = Register::BH.info();
assert_eq!(Register::EBX, info.full_register32());
let info = Register::DX.info();
assert_eq!(Register::EDX, info.full_register32());
let info = Register::ESP.info();
assert_eq!(Register::ESP, info.full_register32());
let info = Register::RCX.info();
assert_eq!(Register::ECX, info.full_register32());
let info = Register::XMM3.info();
assert_eq!(Register::ZMM3, info.full_register32());
let info = Register::YMM3.info();
assert_eq!(Register::ZMM3, info.full_register32());
let info = Register::ZMM3.info();
assert_eq!(Register::ZMM3, info.full_register32());

#[must_use]pub fn size(&self) -> usize[src]

Size of the register in bytes

use iced_x86::*;
let info = Register::GS.info();
assert_eq!(2, info.size());
let info = Register::BH.info();
assert_eq!(1, info.size());
let info = Register::DX.info();
assert_eq!(2, info.size());
let info = Register::ESP.info();
assert_eq!(4, info.size());
let info = Register::RCX.info();
assert_eq!(8, info.size());
let info = Register::XMM3.info();
assert_eq!(16, info.size());
let info = Register::YMM3.info();
assert_eq!(32, info.size());
let info = Register::ZMM3.info();
assert_eq!(64, info.size());

Trait Implementations

impl Clone for RegisterInfo[src]

impl Copy for RegisterInfo[src]

impl Debug for RegisterInfo[src]

impl Eq for RegisterInfo[src]

impl Hash for RegisterInfo[src]

impl PartialEq<RegisterInfo> for RegisterInfo[src]

impl StructuralEq for RegisterInfo[src]

impl StructuralPartialEq for RegisterInfo[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.