Assembler Dudas Generales

Assembler Dudas Generales

de Juan Nicolas Rahi Ascue -
Número de respuestas: 2

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!

 

 

 

En respuesta a Juan Nicolas Rahi Ascue

Re: Assembler Dudas Generales

de Federico Rivero -

Estimado:

Con respecto a la primer pregunta: no, no es posible hacer [SI + DI].

Para la segunda pregunta, tenés que especificar a dónde apunta el BP al inicio del código.

Saludos,

        Federico