Hola de nuevo un gusto saludar a todos los lectores, en este programa metemos 5 datos a un pila en un registro, y después imprimimos los datos que metimos en orden inverso, la importancia de este programa es ver el funcionamiento de push y pop.
push --> Mete datos a la pila
pop --> Saca datos de la pila
Recordar que una pila es una estructura de datos que funciona como una torre de discos, los primeros discos que se meten a la torre son los últimos que podemos sacar, dicho de otra forma los primeros valores que se meten a la pila, son los últimos que podemos sacar.
Programa en debug.
a
mov cx,05 ;número de datos a meter en este caso 5
mov ah,01
int 21
push ax ;Metemos en la pila del registro ax, puede ser bx u otro registro
loop 103 ;Hacemos el ciclo para meter datos, se decrementa a cx en 1
mov cx,05 ;le damos el valor de 5 a cx para imprimir los datos, será otro ciclo
pop ax ;Saca el ultimo valor metido a la pila
mov ah,02
mov dl,al ;Se imprime el dato que se saco de la pila
int 21
loop 10d ;repite el ciclo
int 20
g
Mismo programa en MASM
.model small
.stack 64
.data
.code
mov cx,05h
meter:
mov ah,01h
int 21h
push ax
loop meter
mov cx,05h
imprimir:
pop ax
mov ah,02h
mov dl,al
int 21h
loop imprimir
salir:
mov ah,04ch
int 21h
end
Hasta el momento los programas entre debug y MASM solo los hemos diferenciado por las etiquetas, en los próximos programas veremos mas diferencias como declaraciones de variables en MASM, hasta la próxima.
gracias por la ayuda
ResponderEliminar