2013-05-05 2 views
0

Я хочу закодировать этот рекурсивный двоичный поиск в ассемблере motrolla 68K.рекурсивный двоичный поиск для ассемблера motorola 68K

int binSearch(int key, int &lo, int &hi) { 
if(hi < lo) 
    return NOT_FOUND; //RETURN with V = 1 
int mid = (lo+hi)/2; 
if(key == array[mid]) 
    return mid; 
else if(key < array[mid]) // go left 
    return binSearch(key, lo, mid-1); // left 
else 
    return binSearch(key, mid+1, hi); // right 
} 

, так что я просто интересно, если я кодирования int binsearch(int key,int&lo,int &hi) часть правой

любой HELP !! ????????????

link  A6,#0 
movem.l D1,D2-(sp) 
move.w  8(A6),D1 *key 

и если бы я хотел сделать int&low,int hi бы я сделать то же самое только с A5, A4..ect.?

ответ

0

Я нашел эти вопросы, которые вы могли бы рассмотреть вопрос о пересмотре в вашем коде:

  • Вам необходимо пройти array к binsearch
  • Это будет работать только если array является ранее отсортирован
  • Тип array содержание должно быть int, чтобы сделать действительное сравнение с key

ps: пожалуйста, не могли бы вы пояснить на второй части? Вы пытаетесь преобразовать C в сборку?