Я пытаюсь реализовать рекурсивную функцию Аккермана-Петера в NASM-сборке x86. Функция определяется следующим образом:
* a (0; m) = m + 1
* a (n + 1; 0) = a (n; 1)
* a (n + 1; m + 1)) = a (n; a (n + 1; m))
Моя проблема в том, что я даже не представляю, как начать правильно. К настоящему времени я реализовал только функцию "степень x" в ассемблере.
Вот что у меня есть:
http://pastebin.com/rsWALyCq (Немецкие подсказки просто спрашивают n и m)
Я благодарен за каждую помощь, которую я могу получить с этим.
-
ТАК, что я сделал симметричные операторы push / pop сейчас, но все же получил ошибку сегментации. Я попытался отладить все это и поместил сообщение отладки в первый регистр. Я скомпилировал Программу и попробовал ее с n = 0 и m = 0, и он не печатает сообщение отладки, поэтому он даже не вводит первый регистр. Кажется, мне не удается понять, почему он этого не делает.
Вот моя текущая попытка:
http://pastebin.com/D4jg7JGV