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.
- _abc_impl = <_abc._abc_data object>¶
- 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¶
- size: int¶
- class registers.RegisterSet16(bitness: int)[source]¶
Bases:
BaseRegisterSet
Register set for 16-bit mode.
- _abc_impl = <_abc._abc_data object>¶
- class registers.RegisterSet32(bitness: int)[source]¶
Bases:
BaseRegisterSet
Register set for 32-bit mode.
- _abc_impl = <_abc._abc_data object>¶
- class registers.RegisterSet64(bitness: int)[source]¶
Bases:
BaseRegisterSet
Register set for 64-bit mode.
- _abc_impl = <_abc._abc_data object>¶
- 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