[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [escepticos] Ackermann



Eloy Anguiano wrote:
> 
> Alfonso A. C. wrote:
> 
> >         Uff... si bueno, no te niego que sea memoria, pero no memoria convencional,
> > sino que es tratada de forma aparte... la de codigo recursivo que he tenido
> > que rehacer en iterativo tras el archiconocido "stack overflow"
> 

[Eloy]
> Te recuerdo que un:
> 
>         MOV BP,SP
> 
>         Te permite acceder al stack como memoria normal y corriente que es, lo
> unico que sucede es que PUSH y POP actuan amontonando en la memoria de
> arriba a abajo y desamontonando al reves.
> 
> El stack overflow es porque rebosas el tamaño del stack. Es como si
> rebosases la memoria reservada a n array cualquiera pero este tiene
> control porque se desborda al reves, es decir, por 0 y el control de
> desbordamiento de stack es simple basta con que internamente si SP es 0
> no pueda hacerse un PUSH (que es lo que sucede).
> 
> Para evitarlo basta con aumentar el tamaño de stack lo necesario.
> 

No se si seria tan osado como para implementar recursividad en
assembler, pero si trabajas en C, donde creo la pila tiene mas o menos 1
MB, no debe ser tan facil tocar en ella como en assembler, o sea,
agotada la pila, debe ser bastante trabajoso superar el problema. Esta
funcion de Ackerman me reboso la pila de recursividad con A(4,1), que es
un resultado ridiculo, pues A(4,1) = 65000 y algo.

Mig