# Path: VM/ctypes_types.py



import ctypes
from .ctypes_types import ubyte, uword, udword
    _anonymous_ = tuple(a + b)

    _fields_ = [
                   (name, GenRegX(name[4:]))
                   for name in a
               ] + [
                   (name, GenReg(name[4:]))
                   for name in b
               ] + [
        ('eflags', _Eflags)
    ][::-1]

    del a, b


class _sreg_hidden(ctypes.LittleEndianStructure):
    _pack_ = 1
    _fields_ = [
        ('base', udword),
        ('limit', udword),
        ('access', udword)
    ]

    def __str__(self):
        return f'base=0x{self.base:08x}, limit=0x{self.limit:08x}, access={self.access:08x}'


class _one_sreg(ctypes.Structure):
    _pack_ = 1
    _fields_ = [

# Path: VM/ctypes_types.py



# Path: VM/Registers.py
import ctypes
from .ctypes_types import ubyte, uword, udword

    _anonymous_ = tuple(a + b)

    _fields_ = [
                   (name, GenRegX(name[4:]))
                   for name in a
               ] + [
                   (name, GenReg(name[4:]))
                   for name in b
               ] + [
        ('eflags', _Eflags)
    ][::-1]

    del a, b


class _sreg_hidden(ctypes.LittleEndianStructure):
    _pack_ = 1
    _fields_ = [
        ('base', udword),
        ('limit', udword),
        ('access', udword)
    ]

    def __str__(self):
        return f'base=0x{self.base:08x}, limit=0x{self.limit:08x}, access={self.access:08x}'


class _one_sreg(ctypes.Structure):
    _pack_ = 1
    _fields_ = [

        ('visible', udword),