그래서 저는 C 코드로 퀵 소트 알고리즘을 구현 한 클래스를 가지고 있습니다. 우리는 mips 어셈블리 언어로 그 코드를 암시해야합니다. 나는 대부분 내 코드를 성공적으로 만들었지 만 재귀 중 일부는 문제가 있습니다.quicksort Mips assembly
...
tmp = v[left];
v[left] = v[last];
v[last] = tmp;
qsort(v, left, last-1);
qsort(v, last+1, right);
내가 함께하는 데 문제 부분은, 즉, 재귀 부분이 내가 걱정 해요 C 프로그램의 일부입니다. ... qsort (v, left, last-1) ...
제 질문은 qsort (v, left, last-1)를 실행하면 last-1 값이 "right"로 저장됩니다. 따라서 재귀 호출이 완료되면 이전 값 ("s")을 기억해야합니다. 간단히 어떻게 할 수 있니?
편집 : 문제는 숫자 목록이 커질수록 재귀 호출 수가 많아지고 저장해야하는 값이 많아집니다. 내가 알고 싶은 것은 다양한 길이의 값을 저장하고 불러올 수있는 방법일까요?
여분의 레지스터에 넣으시겠습니까? 스택 어딘가에 넣으시겠습니까? –
[스택] (http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/stack.html)을 사용하면 재귀 함수에 적합합니다. – Michael