Package envi :: Package archs :: Package arm
[hide private]
[frames] | no frames]

Source Code for Package envi.archs.arm

 1   
 2  """ 
 3  The initial arm module. 
 4  """ 
 5   
 6  import envi 
 7   
 8  from envi.archs.arm.regs import * 
 9  from envi.archs.arm.disasm import * 
10  from envi.archs.arm.armdisasm import * 
11  from envi.archs.arm.thumbdisasm import * 
12   
13 -class ArmModule(envi.ArchitectureModule):
14
15 - def __init__(self):
16 envi.ArchitectureModule.__init__(self, "armv6", maxinst=4) 17 self._arch_reg = self.archGetRegCtx() 18 self._arch_dis = ArmDisasm()
19
20 - def setModeThumb(self):
21 self._arch_dis.setMode(MODE_THUMB)
22
23 - def archGetRegCtx(self):
24 return ArmRegisterContext()
25
26 - def archGetBreakInstr(self):
27 raise Exception ("weird... what are you trying to do here? ARM has a complex breakpoint instruction") 28 return
29
30 - def getPointerSize(self):
31 return 4
32
33 - def pointerString(self, va):
34 return "0x%.8x" % va
35
36 - def makeOpcode(self, bytes, offset=0, va=0):
37 """ 38 Parse a sequence of bytes out into an envi.Opcode instance. 39 """ 40 return self._arch_dis.disasm(bytes, offset, va)
41
42 - def getEmulator(self):
43 return ArmEmulator()
44 45 from envi.archs.arm.emu import * 46