예제 #1
0
 def fhook(self, ops, vm):
     check_num_args("CALL", ops, 1)
     vm.dec_sp()
     vm.stack[hex(vm.get_sp() + 1).split('x')[-1].upper()] = vm.get_ip()
     target = get_one_op(self.get_nm(), ops)
     vm.c_stack.append(vm.get_ip())
     raise Jump(target.name)
예제 #2
0
 def fhook(self, ops, vm):
     target = get_one_op(self.get_nm(), ops)
     raise Jump(str(target.get_val()))
예제 #3
0
 def fhook(self, ops, vm):
     target = get_one_op(self.get_nm(), ops)
     if int(vm.flags['ZF']) == 0:
         raise Jump(target.name)
예제 #4
0
 def fhook(self, ops, vm):
     target = get_one_op(self.get_nm(), ops)
     raise Jump(target.name)
예제 #5
0
 def fhook(self, ops, vm):
     target = get_one_op(self.get_nm(), ops)
     if (int(vm.flags['SF']) == 1 or
             int(vm.flags['ZF']) == 1):
         raise Jump(target.name)
     return ''
예제 #6
0
 def fhook(self, ops, vm):
     target = get_one_op(self.get_nm(), ops)
     if isinstance(target, IntegerTok):
         raise Jump(str(target.get_val()))
     else:
         raise Jump(target.name)