registers package

Module contents

Register module for CPU registers representation.

Provides classes for representing CPU registers in different CPU architectures (16, 32 and 64-bit). Includes hierarchical relationships between registers and their sub-registers.

class registers.BaseRegisterSet(bitness: int)[source]

Bases: Mapping

Base class for register sets providing common functionality.

__init__(bitness: int) None[source]

Initialize a base registers set.

_abc_impl = <_abc._abc_data object>
_build_register_set() None[source]

Construct register hierarchy for the architecture.

contains(name: str) bool[source]

Check if register exists in the set.

get(name: str, default: Register | None = None) Register | None[source]

Get register by name with fallback.

class registers.Register(name: str, size: int, aliases: frozenset[str] = <factory>, parent: ~registers.Register | None = None)[source]

Bases: object

Represents a CPU register with immutable properties.

name

Canonical name of the register

Type:

str

size

Bit size of the register (8, 16, 32, 64)

Type:

int

aliases

Alternative names for the register

Type:

frozenset[str]

parent

Parent register for partial registers

Type:

registers.Register | None

__init__(name: str, size: int, aliases: frozenset[str] = <factory>, parent: ~registers.Register | None = None) None
aliases: frozenset[str]
get_full_hierarchy() list[Register][source]

Get full hierarchy of registers including this one and all parents.

name: str
parent: Register | None = None
size: int
class registers.RegisterSet16(bitness: int)[source]

Bases: BaseRegisterSet

Register set for 16-bit mode.

_abc_impl = <_abc._abc_data object>
_build_register_set() None[source]

Construct register hierarchy for the architecture.

class registers.RegisterSet32(bitness: int)[source]

Bases: BaseRegisterSet

Register set for 32-bit mode.

_abc_impl = <_abc._abc_data object>
_build_register_set() None[source]

Construct register hierarchy for the architecture.

class registers.RegisterSet64(bitness: int)[source]

Bases: BaseRegisterSet

Register set for 64-bit mode.

_abc_impl = <_abc._abc_data object>
_build_register_set() None[source]

Construct register hierarchy for the architecture.

registers.get_registers(mode: str) BaseRegisterSet | None[source]

Retrieve register set for specified architecture mode.

Parameters:

mode – Target architecture mode. Valid values: ‘16’, ‘32’, ‘64’

Returns:

Register set instance or None for invalid mode.

Examples

>>> regs = get_registers("64")
>>> regs["RAX"].name
'RAX'
>>> regs["RAX"].size
64