[2022][Diciembre][Problema 1]

[2022][Diciembre][Problema 1]

de Agustín Occhiuzzi Rodríguez -
Número de respuestas: 0

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.