Miasm2
 All Classes Namespaces Files Functions Variables Typedefs Properties Macros
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
miasm2.arch.x86.arch.bs_s08 Class Reference
+ Inheritance diagram for miasm2.arch.x86.arch.bs_s08:
+ Collaboration diagram for miasm2.arch.x86.arch.bs_s08:

Public Member Functions

def flen
 
def encode
 
def decode
 
def fromstring
 
def getmaxlen
 
def clone
 
def __hash__
 

Public Attributes

 l
 
 value
 
 expr
 
 flen
 
 parent
 
 strbits
 
 cls
 
 fname
 
 order
 
 lmask
 
 fbits
 
 fmask
 
 kargs
 

Static Public Attributes

 parser = int_or_expr
 
int max_size = 32
 
int ll = 2
 

Detailed Description

Definition at line 2746 of file arch.py.

Member Function Documentation

def miasm2.core.cpu.bsi.__hash__ (   self)
inherited

Definition at line 493 of file cpu.py.

494  def __hash__(self):
495  kargs = []
496  for k, v in self.kargs.items():
497  if isinstance(v, list):
498  v = tuple(v)
499  kargs.append((k, v))
500  l = [self.strbits, self.l, self.cls,
501  self.fname, self.order, self.lmask, self.fbits,
502  self.fmask, self.value] # + kargs
503 
504  return hash(tuple(l))
505 
def miasm2.core.cpu.bsi.clone (   self)
inherited

Definition at line 483 of file cpu.py.

484  def clone(self):
485  s = self.__class__(self.parent,
486  self.strbits, self.l, self.cls,
487  self.fname, self.order, self.lmask, self.fbits,
488  self.fmask, self.value, self.flen, **self.kargs)
489  s.__dict__.update(self.kargs)
490  if hasattr(self, 'expr'):
491  s.expr = self.expr
492  return s
def miasm2.arch.x86.arch.bs_s08.decode (   self,
  v 
)

Definition at line 2772 of file arch.py.

2773  def decode(self, v):
2774  v = swap_uint(self.l, v)
2775  size = offsize(self.parent)
2776  v = sign_ext(v, self.l, size)
2777  self.expr = ExprInt(v, size)
2778  return True
2779 
def swap_uint
Definition: cpu.py:1578
def sign_ext
Definition: cpu.py:1602

+ Here is the call graph for this function:

def miasm2.arch.x86.arch.bs_s08.encode (   self)

Definition at line 2753 of file arch.py.

2754  def encode(self):
2755  if not isinstance(self.expr, ExprInt):
2756  raise StopIteration
2757  arg0_expr = self.parent.args[0].expr
2758  if self.l != 0:
2759  l = self.l
2760  else:
2761  l = self.parent.v_opmode()
2762  self.l = l
2763  l = offsize(self.parent)
2764  v = int(self.expr.arg)
2765  mask = ((1 << self.l) - 1)
2766  if self.l > l:
2767  raise StopIteration
2768  if v != sign_ext(v & mask, self.l, l):
2769  raise StopIteration
2770  self.value = swap_uint(self.l, v & ((1 << self.l) - 1))
2771  yield True
def swap_uint
Definition: cpu.py:1578
def sign_ext
Definition: cpu.py:1602
def miasm2.arch.x86.arch.bs_s08.flen (   cls,
  mode,
  v 
)

Definition at line 2750 of file arch.py.

2751  def flen(cls, mode, v):
2752  return 8
def miasm2.arch.x86.arch.bs_rel_off.fromstring (   self,
  s,
  parser_result = None 
)
inherited

Definition at line 2689 of file arch.py.

2690  def fromstring(self, s, parser_result=None):
2691  if parser_result:
2692  expr, start, stop = parser_result[self.parser]
2693  else:
2694  try:
2695  expr, start, stop = self.parser.scanString(s).next()
2696  except StopIteration:
2697  expr = None
2698  self.expr = expr
2699  l = self.parent.mode
2700  if isinstance(self.expr, ExprInt):
2701  v = int(self.expr.arg)
2702  mask = ((1 << l) - 1)
2703  self.expr = ExprInt(v & mask, l)
2704  return start, stop
def miasm2.arch.x86.arch.bs_cond_imm.getmaxlen (   self)
inherited

Definition at line 2597 of file arch.py.

2598  def getmaxlen(self):
2599  return 32

Member Data Documentation

miasm2.core.cpu.bsi.cls
inherited

Definition at line 465 of file cpu.py.

miasm2.arch.x86.arch.bs_s08.expr

Definition at line 2776 of file arch.py.

miasm2.core.cpu.bsi.fbits
inherited

Definition at line 469 of file cpu.py.

miasm2.core.cpu.bsi.flen
inherited

Definition at line 471 of file cpu.py.

miasm2.core.cpu.bsi.fmask
inherited

Definition at line 470 of file cpu.py.

miasm2.core.cpu.bsi.fname
inherited

Definition at line 466 of file cpu.py.

miasm2.core.cpu.bsi.kargs
inherited

Definition at line 473 of file cpu.py.

miasm2.arch.x86.arch.bs_s08.l

Definition at line 2761 of file arch.py.

int miasm2.arch.x86.arch.bs_cond_scale.ll = 2
staticinherited

Definition at line 2475 of file arch.py.

miasm2.core.cpu.bsi.lmask
inherited

Definition at line 468 of file cpu.py.

int miasm2.arch.x86.arch.bs_cond_imm.max_size = 32
staticinherited

Definition at line 2560 of file arch.py.

miasm2.core.cpu.bsi.order
inherited

Definition at line 467 of file cpu.py.

miasm2.core.cpu.bsi.parent
inherited

Definition at line 462 of file cpu.py.

miasm2.arch.x86.arch.bs_s08.parser = int_or_expr
static

Definition at line 2747 of file arch.py.

miasm2.core.cpu.bsi.strbits
inherited

Definition at line 463 of file cpu.py.

miasm2.arch.x86.arch.bs_s08.value

Definition at line 2769 of file arch.py.


The documentation for this class was generated from the following file: