
    g                         S SK Jr  S SKJr  S SKr\ " S S5      5       r " S S\R                  5      r\ " S S	5      5       rS
\S   S\4S jr	g)    )	dataclass)LiteralNc                   >    \ rS rSr% \\S'   \S   \S'   S\4S jrSrg)	RegisterType   name)          @   sizereturnc                     U R                   $ N)r   selfs    +/mnt/public/Repos/urclelf/./x86/register.py__str__RegisterType.__str__
   s    yy     N)	__name__
__module____qualname____firstlineno__str__annotations__r   r   __static_attributes__r   r   r   r   r      s    
I
-
   r   r   c                      \ rS rSr\" SS5      r\" SS5      r\" SS5      r\" SS	5      r\" S
S5      r	\" SS5      r
\" SS5      r\" SS	5      r\" SS5      r\" SS5      r\" SS5      r\" SS	5      r\" SS5      r\" SS5      r\" SS5      r\" SS	5      r\" SS5      r\" SS5      r\" SS5      r\" SS5      r\" SS	5      r\" SS5      r\" SS5      r\" SS5      r\" SS5      r\" SS	5      r\" S S5      r\" S!S5      r \" S"S5      r!\" S#S5      r"\" S$S	5      r#\" S%S5      r$\" S&S5      r%\" S'S5      r&\" S(S5      r'\" S)S	5      r(\" S*S5      r)\" S+S5      r*\" S,S5      r+\" S-S	5      r,\" S.S5      r-\" S/S5      r.\" S0S5      r/\" S1S	5      r0\" S2S5      r1\" S3S5      r2\" S4S5      r3\" S5S	5      r4\" S6S5      r5\" S7S5      r6\" S8S5      r7\" S9S	5      r8\" S:S5      r9\" S;S5      r:\" S<S5      r;\" S=S	5      r<\" S>S5      r=\" S?S5      r>\" S@S5      r?\" SAS	5      r@\" SBS5      rA\" SCS5      rB\" SDS5      rC\" SES	5      rD\" SFS5      rE\" SGS5      rF\" SHS5      rG\" SIS	5      rH\ISJ\J4SK j5       rKSL rLSMrMgN)ORegister   alr	   axr
   eaxr   raxr   blbxebxrbxclcxecxrcxdldxedxrdxahsplspesprspchbplbpebprbpdhsilsiesirsibhdildiedirdir8lr8wr8dr8r9lr9wr9dr9r10lr10wr10dr10r11lr11wr11dr11r12lr12wr12dr12r13lr13wr13dr13r14lr14wr14dr14r15lr15wr15dr15r   c                 v    [          H/  nUR                  R                  U R                  5       :X  d  M-  Us  $    g r   )r    valuer   lower)r   registers     r   	from_nameRegister.from_nameT   s)     H~~""djjl2 !r   c                 ,    [        U R                  5      $ r   )r   rg   r   s    r   r   Register.__str__Z   s    4::r   r   N)Nr   r   r   r   r   ALAXEAXRAXBLBXEBXRBXCLCXECXRCXDLDXEDXRDXAHSPLSPESPRSPCHBPLBPEBPRBPDHSILSIESIRSIBHDILDIEDIRDIR8LR8WR8DR8R9LR9WR9DR9R10LR10WR10DR10R11LR11WR11DR11R12LR12WR12DR12R13LR13WR13DR13R14LR14WR14DR14R15LR15WR15DR15staticmethodr   rj   r   r   r   r   r   r    r       sR   	dA	B	dB	B
ub
!C
ub
!C	dA	B	dB	B
ub
!C
ub
!C	dA	B	dB	B
ub
!C
ub
!C	dA	B	dB	B
ub
!C
ub
!C	dA	B
ua
 C	dB	B
ub
!C
ub
!C	dA	B
ua
 C	dB	B
ub
!C
ub
!C	dA	B
ua
 C	dB	B
ub
!C
ub
!C	dA	B
ua
 C	dB	B
ub
!C
ub
!C
ua
 C
ub
!C
ub
!C	dB	B
ua
 C
ub
!C
ub
!C	dB	B"D#D#D
r
"C"D#D#D
r
"C"D#D#D
r
"C"D#D#D
r
"C"D#D#D
r
"C"D#D#D
r
"C      
r   r    c                   f    \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S	'   S
rg)GeneralRegisters]   abcdr4   r9   rC   r>   r   N)r   r   r   r   r    r   r   r   r   r   r   r   ]   s*    KKKKLLLLr   r   bits)r   r   r   c           
         U S:X  a  [        [        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  5      $ [        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                   [        R"                  5      $ )Nr   )r   r    rq   ru   ry   r}   r   r   r   r   rp   rt   rx   r|   r   r   r   r   )r   s    r   get_registersr   h   s    rzLLLLLLLLLLLLLLLL	
 		
  LLLLLLLLLLLLLLLL	
 		
r   )
dataclassesr   typingr   enumr   Enumr    r   r   r   r   r   <module>r      si    !  
  Ntyy N`   
 
,< 
r   