Struct iced_x86::RegisterInfo[][src]

pub struct RegisterInfo { /* fields omitted */ }

Register information

Implementations

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!(info.register(), Register::EAX);

#[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!(info.base(), Register::ES);
let info = Register::RDX.info();
assert_eq!(info.base(), Register::RAX);
let info = Register::XMM13.info();
assert_eq!(info.base(), Register::XMM0);
let info = Register::YMM13.info();
assert_eq!(info.base(), Register::YMM0);
let info = Register::ZMM13.info();
assert_eq!(info.base(), Register::ZMM0);

#[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!(info.number(), 5);
let info = Register::RDX.info();
assert_eq!(info.number(), 2);
let info = Register::XMM13.info();
assert_eq!(info.number(), 13);
let info = Register::YMM13.info();
assert_eq!(info.number(), 13);
let info = Register::ZMM13.info();
assert_eq!(info.number(), 13);

#[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

Examples

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

#[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

Examples

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

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

Size of the register in bytes

Examples

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

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.