Salve ragazzi, premetto che conosco la sintassi del linguaggio macchina MIPS, che da qui in poi chiamerò mips.
Avendo fin ora scritto solo funzioni iterative (per lo più su array o alberi binari definiti come dati statici), sono alle prese con la ricorsione. Capite che in un linguaggio a basso livello essa può essere particolarmente rompiscatole, ed è per questo che chiedo il vostro aiuto:
Ho deciso di esercitarmi con la ricorsione in mips utilizzando Mars 4.5 come simulatore, ma mi sono accorto che sia le convenzioni di scrittura dei registri (usare gli $s al posto dei $t) sia i ragionamenti per "abbozzare" il programma (con l'induzione) sono diversi. Chiedo a qualcuno di voi di illuminarmi un po' sulla ricorsione, di dirmi perlomeno cosa c'è da sapere per scrivere ricorsivamente in mips, come si ragiona ricorsivamente in mips (per esempio, lo stack pointer, come diavolo funziona? Perchè lo si usa nella ricorsione?).
Generalmente: vi chiedo umilmente una panoramica generale sulla ricorsione in mips, per poter iniziare ad esercitarmi.
Grazie in anticipo.
Avendo fin ora scritto solo funzioni iterative (per lo più su array o alberi binari definiti come dati statici), sono alle prese con la ricorsione. Capite che in un linguaggio a basso livello essa può essere particolarmente rompiscatole, ed è per questo che chiedo il vostro aiuto:
Ho deciso di esercitarmi con la ricorsione in mips utilizzando Mars 4.5 come simulatore, ma mi sono accorto che sia le convenzioni di scrittura dei registri (usare gli $s al posto dei $t) sia i ragionamenti per "abbozzare" il programma (con l'induzione) sono diversi. Chiedo a qualcuno di voi di illuminarmi un po' sulla ricorsione, di dirmi perlomeno cosa c'è da sapere per scrivere ricorsivamente in mips, come si ragiona ricorsivamente in mips (per esempio, lo stack pointer, come diavolo funziona? Perchè lo si usa nella ricorsione?).
Generalmente: vi chiedo umilmente una panoramica generale sulla ricorsione in mips, per poter iniziare ad esercitarmi.
Grazie in anticipo.