| Precedente :: Successivo | 
	
	
		| Autore | Messaggio | 
	
		| GIGOLOKO Mortale pio
 
  
  
 Registrato: 26/09/07 14:50
 Messaggi: 27
 
 
 | 
			
				|  Inviato: 17 Feb 2009 23:52    Oggetto: Ricorsione MIPS |   |  
				| 
 |  
				| salve raga sono disperato qualcuno potrebbe dirmi le regole base per fare una funzione ricorsiva ovviamente
 sono casi base
 e ricorsione
 ma come si implementano in assembler mips
 ad esempio questa come se fa
 function recur(n:integer,z:integer):integer;
 var m:integer;
 begin
 x=resto di n/5
 if (x<0)
 then recur :=1
 else m:=call(z)
 recur:=(recur(m)+recur(x))
 end;
 
            |  | 
	
		| Top |  | 
	
		|  | 
	
		| SverX Supervisor Macchinisti
 
  
  
 Registrato: 25/03/02 12:16
 Messaggi: 11861
 Residenza: Tokelau
 
 | 
			
				|  Inviato: 18 Feb 2009 15:08    Oggetto: Re: Ricorsione MIPS |   |  
				| 
 |  
				| ricorsione in assembler? usa uno stack per 'appoggiare' i valori quando chiami la funzione e riprendili quando termini... |  | 
	
		| Top |  | 
	
		|  | 
	
		| GIGOLOKO Mortale pio
 
  
  
 Registrato: 26/09/07 14:50
 Messaggi: 27
 
 
 | 
			
				|  Inviato: 18 Feb 2009 15:56    Oggetto: |   |  
				| 
 |  
				| certo lo stack va usato ma non basta per far si che la funzione sia ricorsiva serve un implementazione particolare
 nessuno ci riesce?
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| SverX Supervisor Macchinisti
 
  
  
 Registrato: 25/03/02 12:16
 Messaggi: 11861
 Residenza: Tokelau
 
 | 
			
				|  Inviato: 18 Feb 2009 17:16    Oggetto: |   |  
				| 
 |  
				|  	  | GIGOLOKO ha scritto: |  	  | serve un implementazione particolare | 
 
 scusami, non ho capito in cosa dovrebbe essere particolare. Non è più complicato che calcolare il fattoriale di un numero come
 
 n! = n * (n-1)!
 
 no?
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| GIGOLOKO Mortale pio
 
  
  
 Registrato: 26/09/07 14:50
 Messaggi: 27
 
 
 | 
			
				|  Inviato: 20 Feb 2009 03:15    Oggetto: |   |  
				| 
 |  
				| be in quel caso non e molto difficile farla ma in quello che ho postato sopra e un po piu complicata la cosa fidati ammenoche tu non sappia farla
 e ci sono casi ancora piu difficili di quello che non sto a postare
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| SverX Supervisor Macchinisti
 
  
  
 Registrato: 25/03/02 12:16
 Messaggi: 11861
 Residenza: Tokelau
 
 | 
			
				|  Inviato: 20 Feb 2009 12:53    Oggetto: |   |  
				| 
 |  
				|  	  | GIGOLOKO ha scritto: |  	  | be in quel caso non e molto difficile farla ma in quello che ho postato sopra e un po piu complicata la cosa fidati ammenoche tu non sappia farla
 e ci sono casi ancora piu difficili di quello che non sto a postare
 | 
 
 in ogni caso c'è almeno un errore: se la tua funzione recur() accetta due parametri interi in input per restituirne uno in output allora le chiamate alla funzione recur() stessa che fai qui:
 
  	  | Codice: |  	  | recur:=(recur(m)+recur(x)) | 
 non ha senso. A meno che non fosse ad esempio
 
  	  | Codice: |  	  | recur:=recur(m,x) | 
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| GIGOLOKO Mortale pio
 
  
  
 Registrato: 26/09/07 14:50
 Messaggi: 27
 
 
 | 
			
				|  Inviato: 20 Feb 2009 21:36    Oggetto: |   |  
				| 
 |  
				| anche per me non hanno senso ne questa ne le altre ma per quel trimone del prof si
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| SverX Supervisor Macchinisti
 
  
  
 Registrato: 25/03/02 12:16
 Messaggi: 11861
 Residenza: Tokelau
 
 | 
			
				|  Inviato: 23 Feb 2009 13:59    Oggetto: |   |  
				| 
 |  
				|  	  | GIGOLOKO ha scritto: |  	  | anche per me non hanno senso ne questa ne le altre ma per quel trimone del prof si
 | 
 
 credo sia lecito domandargli chiarimenti, no?
 |  | 
	
		| Top |  | 
	
		|  | 
	
		|  |