Buenas,
Tengo las 2 siguientes dudas:
- Se puede hacer PUSH BX:[SI+DI]
Es decir calcular SI + DI en el momento o es necesario calcularlo antes ese valor en un registro.
- Tengo en el stack
Param1
Param2
Param3
IP
BP
BX ....
Al momento de retornar quiero devolver el resultado y quitar los param del stack
Estaría bien hacer
MOV [BP + 8], CX ; resultado
MOV CX, [BP +2]
MOV [BP + 6], CX ; ubico el IP
MOV [BP + 4], BP
MOV [BP + 2], BP
O sea mi idea fue dejar el valor de BP en varias posiciones ya que luego al hacer POP BP (3 veces en este caso) estaría conservando el mismo valor.
La consulta es si está bien, si existe otra alternativa más "prolija" o no es correcto
Gracias!