Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- push ebp
- mov ebp, esp
- mov EBX, start_i
- mov EAX, end_i
- sub EAX, EBX
- shr EBX, 1
- mov EBX, start_i
- add EAX, EBX // midpoint EAX
- mov ECX, start_i
- mov EDX, end_i
- cmp ECX, EDX
- jg startend
- mov EDX, integer_array
- mov CL, byte ptr [EDX + EAX*4]
- mov EBX, toFind
- cmp BL, CL
- je ifound
- mov EDX, integer_array
- mov CL, byte ptr [EDX + EAX*4]
- mov EBX, toFind
- cmp CL, BL
- jg greaterThan
- jmp elsey
- startend:
- //returns -1
- mov EAX, -1
- pop EBP
- ret
- jmp end
- ifound:
- //returns EAX
- pop EBP
- ret
- greaterThan:
- // return binary_search(data, toFind, start, mid-1);
- sub EAX, 1
- mov EBX, [EBP + 12]
- mov ECX, [EBP + 8]
- mov EDX, [EBP + 4]
- push EAX
- mov EBX, start_i
- push EBX
- mov ECX, toFind
- push ECX
- push EDX
- call binarySearch
- add ESP, 16
- pop EBP
- ret
- elsey:
- // return binary_search(data, toFind, mid+1, end);
- add EAX, 1
- mov EBX, [EBP + 12]
- mov ECX, [EBP + 8]
- mov EDX, [EBP + 4]
- mov EBX, end_i
- push EBX
- push EAX
- mov ECX, toFind
- push ECX
- push EDX
- call binarySearch
- add ESP, 16
- mov esp, ebp
- pop ebp
- end:
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement