Мне трудно получить рекурсию на работу.Ну, рекурсия для себя!Факториальный калькулятор не был таким сложным, мне потребовалось около полдня, чтобы понять это.
mov eax, [input]
call factorialator
jmp quit
;
factorialator:
cmp eax, 0
je return
push eax
dec eax
call factorialator
;
pop eax
imul ebx, eax
ret
;
return:
mov ebx, 1
ret
Теперь эта функция вызывает себя с n = n-1 и толкает n каждый раз, пока n = 0,когда он умножает их все. Easy peasy
Но теперь, когда мне нужно вызвать функцию с (n-1) И (n-2), я не могу себе представить, как это будет работать, так как я долженуправлять адресами возврата, стеком, значениями.Все, что я знаю, это то, что каждый раз, когда вычитается 1 или 2, а результат равен 1, он должен включать счетчик, который затем даст нам результат.
, поэтому возвращайте с n-1, пока n-1 =1, в этом случае вернуть n-2, а затем снова n-1.Я просто , так что растерялся и боролся за это уже 2 дня.
Спасибо за помощь, спасибо!