RegisterInfo

class iced_x86.RegisterInfo(register)

Register enum info, see also RegisterExt

Parameters:

register (Register) – Enum value

Examples:

from iced_x86 import *

info = RegisterInfo(Register.GS)
assert info.number == 5
base

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

Examples:

from iced_x86 import *

info = RegisterInfo(Register.GS)
assert info.base == Register.ES
info = RegisterInfo(Register.RDX)
assert info.base == Register.RAX
info = RegisterInfo(Register.XMM13)
assert info.base == Register.XMM0
info = RegisterInfo(Register.YMM13)
assert info.base == Register.YMM0
info = RegisterInfo(Register.ZMM13)
assert info.base == Register.ZMM0
Type:

Register

full_register

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

Examples:

from iced_x86 import *

info = RegisterInfo(Register.GS)
assert info.full_register == Register.GS
info = RegisterInfo(Register.BH)
assert info.full_register == Register.RBX
info = RegisterInfo(Register.DX)
assert info.full_register == Register.RDX
info = RegisterInfo(Register.ESP)
assert info.full_register == Register.RSP
info = RegisterInfo(Register.RCX)
assert info.full_register == Register.RCX
info = RegisterInfo(Register.XMM3)
assert info.full_register == Register.ZMM3
info = RegisterInfo(Register.YMM3)
assert info.full_register == Register.ZMM3
info = RegisterInfo(Register.ZMM3)
assert info.full_register == Register.ZMM3
Type:

Register

full_register32

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:

from iced_x86 import *

info = RegisterInfo(Register.GS)
assert info.full_register32 == Register.GS
info = RegisterInfo(Register.BH)
assert info.full_register32 == Register.EBX
info = RegisterInfo(Register.DX)
assert info.full_register32 == Register.EDX
info = RegisterInfo(Register.ESP)
assert info.full_register32 == Register.ESP
info = RegisterInfo(Register.RCX)
assert info.full_register32 == Register.ECX
info = RegisterInfo(Register.XMM3)
assert info.full_register32 == Register.ZMM3
info = RegisterInfo(Register.YMM3)
assert info.full_register32 == Register.ZMM3
info = RegisterInfo(Register.ZMM3)
assert info.full_register32 == Register.ZMM3
Type:

Register

number

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

Examples:

from iced_x86 import *

info = RegisterInfo(Register.GS)
assert info.number == 5
info = RegisterInfo(Register.RDX)
assert info.number == 2
info = RegisterInfo(Register.XMM13)
assert info.number == 13
info = RegisterInfo(Register.YMM13)
assert info.number == 13
info = RegisterInfo(Register.ZMM13)
assert info.number == 13
Type:

int

register

Gets the register value passed into the constructor

Examples:

from iced_x86 import *

info = RegisterInfo(Register.EAX)
assert info.register == Register.EAX
Type:

Register

size

Size of the register in bytes

Examples:

from iced_x86 import *

info = RegisterInfo(Register.GS)
assert info.size == 2
info = RegisterInfo(Register.BH)
assert info.size == 1
info = RegisterInfo(Register.DX)
assert info.size == 2
info = RegisterInfo(Register.ESP)
assert info.size == 4
info = RegisterInfo(Register.RCX)
assert info.size == 8
info = RegisterInfo(Register.XMM3)
assert info.size == 16
info = RegisterInfo(Register.YMM3)
assert info.size == 32
info = RegisterInfo(Register.ZMM3)
assert info.size == 64
Type:

int