汇编程序motorola 68K的递归二进制搜索

时间:2013-05-05 03:07:01

标签: assembly motorola

我想用汇编程序motrolla 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)部分

任何帮助!! ????????????

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

如果我想做int&low,int hi,我会用A5,A4..ect做同样的事情吗?

1 个答案:

答案 0 :(得分:0)

我发现您可能会考虑在代码中查看以下几点:

  • 您需要将array传递给binsearch
  • 仅当array 之前已排序
  • 时才会生效
  • array内容的类型应为int,以便与key进行有效比较

ps:拜托,你能澄清一下第二部分吗?您是否尝试将C转换为汇编?