code: def smod(computation: BaseComputation) -> None:
      
      value, mod = map(
          unsigned_to_signed,
          computation.stack_pop(num_items=2, type_hint=constants.UINT256),
      )
  
      pos_or_neg = -1 if value < 0 else 1
  
      if mod == 0:
          result = 0
      else:
          result = (abs(value) % abs(mod) * pos_or_neg) & constants.UINT_256_MAX
  
      computation.stack_push(signed_to_unsigned(result))
docs: Signed Modulo