Como puedo hacer esto con pilas???

Edward
30 de Agosto del 2003
Hola debo realizar un programa que haga lo siguiente:

Que inserte dos valores cualquieras (fijos) en una pila, que al segundo valor insertado se le sume un 2 y que ese resultado se sume con el primero que se inserto en la pila.

Es un trabajo de la univ y pues no se hacerlo :(, me podrian ayudar?

Zero.

christian
30 de Agosto del 2003
Hola,

Yo hace siglos que no toco assembler, pero si no me acuerdo mal esto se puede hacer asi, aviso que seguramente se puede depurar, o puede tener algun error de sintaxis ya que hace mucho tiempo que no lo uso.

MOV AX,10
PUSH AX // GUARDAMOS EL PRIMER VALOR
MOV AX,20
PUSH AX,20 // GUARDAMOS EL SEGUNDO VALOR EN LA PILA

POP AX //RECUPERAMOS EL SEGUNDO VALOR
ADD AX,2 //LE SUMAMOS 2
POP BX // RECUPERAMOS EL PRIMER VALOR
ADD AX,BX // SUMAMOS LOS 2 VALOS Y EN AX QUEDA EL VALOR DEFINITIVO.

TE RECUERDO QUE ESTO SOLO ES ALGO RAPIDO, YA QUE NO TENGO MIS MANUALES AQUI, Y HACE SIGLOS QUE NO UTILIZABA ASM.

SI QUIERES OPTIMIZAR UN POQUITO ESTO PODRIAS HACER LAS SUMAS CON OPERACIONES LOGICAS, Y TRABAJAR CON EL REGISTRO BP PARA TRABAJAR CON LOS REGISTRO DE LA PILA

SALUDOS
CHRISTIAN

olshanski
30 de Agosto del 2003
ya esta pasado de fecha, pero bueno.
Yo creo que lo que quería decir era que modificase los valores dentro de la pila, que si lo sacas, está chupao

para moverte por la pila, apilas BP y cargas BP con SP para direccionarte por dentro, sumando y restando de dos en dos (pq la pila es de words). Cambias lo que quieras y reestableces BP.
Olshanski