#45365 - ymalik - Fri Jun 10, 2005 12:19 am
Is there anything that allows the stepping through of assembly code? VBA has the disassemble feature, but it's hard to control. For example, I am implementing binary search, first iteratively and then recursively. Here is the iterative code:
It always returns -1, but I don't know when it is returning -1.
Thanks,
Yasir
Code: |
/* C code int bsearch2(int array[], int key, int size) { int high, low, mid; low = 0; high = size - 1; while(low <= high) { mid = (high + low)>>1; if(array[mid] == key) return mid; else if(array[mid] > key) high = mid - 1; else low = mid + 1; } return -1; } */ @ r0: pointer to array @ r1: key to search for @ r2: size of array bsearch2: sub r2, r2, #1 @ r2 = high value mov r3, #0 @ r3 = low value loop: cmp r3, r2 @ if low > high, key not in array movgt r0, #-1 bxgt lr add r4, r2, r3 @ r4 = high + low mov r4, r4, lsr#1 @ r4 = mid = r4/2 add r5, r0, r4 ldr r5, [r5] @ r5 = *(array + mid) cmp r5, r1 @ array[mid] == key moveq r0, r4 bxeq lr subgt r2, r4, #1 addlt r3, r4, #1 b loop |
It always returns -1, but I don't know when it is returning -1.
Thanks,
Yasir