Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. :Check_add_limit
  2. {
  3. Type: IF
  4. Parameters:
  5. Passed:
  6. 0@ - first integer
  7. 1@ - second integer
  8. Result:
  9. Returns true if two numbers don`t exceed 2^31 limit for integer, else returns false.
  10.  
  11. Example:
  12. if 0AB1: call_scm_func @Check_add_limit 2 numbers 2147483647 + 1
  13. if 0AB1: call_scm_func @Check_add_limit 2 numbers -2147483647 + -2
  14.  
  15. }
  16.  
  17. if
  18. 1@ > 0
  19. then
  20. 2@ = 0x7FFFFFFF
  21. 0062: 2@ -= 0@ // (int)
  22. if
  23. 002D: 2@ >= 1@ // (int)
  24. then
  25. 0485: return_true
  26. else
  27. 059A: return_false
  28. end
  29. else
  30. if
  31. 0@ <= 0
  32. then
  33. 2@ = 0x80000000
  34. 0062: 2@ -= 0@ // (int)
  35.  
  36. if
  37. 002D: 1@ >= 2@ // (int)
  38. then
  39. 0485: return_true
  40. else
  41. 059A: return_false
  42. end
  43. else
  44. 0485: return_true
  45. end
  46. end
  47. 0AB2: ret 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement