0
所以,我有一個類,我們已經交付了c代碼中的quicksort算法的實現,我們必須在mips彙編語言中實現該代碼。我已經成功地完成了我的大部分代碼,但是在遞歸方面遇到了一些麻煩。這是我關心的C程序的一部分:quicksort Mips assembly
...
tmp = v[left];
v[left] = v[last];
v[last] = tmp;
qsort(v, left, last-1);
qsort(v, last+1, right);
我遇到困難的部分是遞歸部分,即。 qsort(v,left,last-1)...
我的問題是,當qsort(v,left,last-1)運行時,last-1的值被保存爲「right」。所以當這個遞歸調用完成時,我不得不回憶以前的「右」值。我怎麼能這樣做?
編輯: 問題是,數字列表越大,會有更多的遞歸調用,因此,我必須存儲更多的值。我想,我想知道的是,如果有一種方法可以存儲和調用可變長度的值?
把它放在一個備用的註冊?把它放在堆棧上的某個地方? –
使用[堆棧](http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/stack.html)似乎適用於遞歸函數。 – Michael