Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. push ebp
  2. mov ebp, esp
  3.  
  4. mov EBX, start_i
  5. mov EAX, end_i
  6. sub EAX, EBX
  7. shr EBX, 1
  8. mov EBX, start_i
  9. add EAX, EBX // midpoint EAX
  10.  
  11. mov ECX, start_i
  12. mov EDX, end_i
  13. cmp ECX, EDX
  14. jg startend
  15.  
  16. mov EDX, integer_array
  17. mov CL, byte ptr [EDX + EAX*4]
  18. mov EBX, toFind
  19. cmp BL, CL
  20. je ifound
  21.  
  22. mov EDX, integer_array
  23. mov CL, byte ptr [EDX + EAX*4]
  24. mov EBX, toFind
  25. cmp CL, BL
  26. jg greaterThan
  27.  
  28. jmp elsey
  29.  
  30. startend:
  31. //returns -1
  32. mov EAX, -1
  33. pop EBP
  34. ret
  35. jmp end
  36.  
  37. ifound:
  38. //returns EAX
  39. pop EBP
  40. ret
  41.  
  42.  
  43. greaterThan:
  44. // return binary_search(data, toFind, start, mid-1);
  45. sub EAX, 1
  46. mov EBX, [EBP + 12]
  47. mov ECX, [EBP + 8]
  48. mov EDX, [EBP + 4]
  49.  
  50. push EAX
  51. mov EBX, start_i
  52. push EBX
  53. mov ECX, toFind
  54. push ECX
  55. push EDX
  56. call binarySearch
  57. add ESP, 16
  58. pop EBP
  59. ret
  60.  
  61. elsey:
  62. // return binary_search(data, toFind, mid+1, end);
  63. add EAX, 1
  64. mov EBX, [EBP + 12]
  65. mov ECX, [EBP + 8]
  66. mov EDX, [EBP + 4]
  67. mov EBX, end_i
  68. push EBX
  69. push EAX
  70. mov ECX, toFind
  71. push ECX
  72. push EDX
  73. call binarySearch
  74. add ESP, 16
  75.  
  76.  
  77.  
  78. mov esp, ebp
  79. pop ebp
  80.  
  81. end:
  82. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement