Hola, para este ejercicio realizé una versión distinta a la de la solución y no me queda claro como calcular el consumo de Stack, entiendo que el peor caso es cuando voy recursivamente hasta la izquierda (calculando los j(n-1) ) hasta que llego al caso base y empiezo a desapilar. Esta es mi solucion la cual me gustaría saber también si tiene errores :
jacobsthal proc
POP BP
POP AX
PUSH BP
CMP AX ,2
JB casoBase
PUSH AX
DEC AX
PUSH AX
CALL jacobsthal
POP BX
POP AX
ADD AX , -2
PUSH BX
PUSH AX
CALL jacobsthal
POP CX
POP BX
SHL CX , 1
ADD CX , BX
INC CX
SHR CX , 1
MOV AX ,CX
casoBase:
POP BP
PUSH AX
PUSH BP
RET
jacobsthal endp
Para el caso base entiendo que hay 4 bytes por el IP y parametro, y luego para cada llamada recursiva 2 bytes de IP, 2 bytes de guardar el parametro y 2 bytes para guardar parametro J(n-1) . Lo que llevaría a un consumo de stack de (N*6)+4 , pero no estoy seguro de estar teniendo en cuenta todos los consumos, y me gustaría saber como calcularlo bien , desde ya muchas gracias.