• La pila es un grupo de localidades de memoria que sereservan con la finalidad de• proporcionar un espacio para el almace...
• Para controlar la pila el microprocesador cuenta con dosinstrucciones básicas:• Push (Meter) y Pop (sacar).• El formato ...
• Por ejemplo, si AX se carga previamente con el valor 5,una instrucción Push AX almacenaría el valor 5 en laultima posici...
• .COMMENT• Programa: PushPop.ASM• Descripción: Este programa demuestra el uso de las instrucciones para elmanejo de la• p...
• ;Autor Victor De la Rocha• ;URL http://www.mis-algoritmos.com• .model small• .stack ;Nos sirve como un almacen (segmento...
• ; HOLA.ASM• ; Programa clásico de ejemplo. Despliega una leyenda en pantalla.• STACK SEGMENT STACK ; Segmento de pila• D...
Manipulacion de la pila!!
Próxima SlideShare
Cargando en…5
×

Manipulacion de la pila!!

2.393 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
2.393
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
84
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Manipulacion de la pila!!

  1. 1. • La pila es un grupo de localidades de memoria que sereservan con la finalidad de• proporcionar un espacio para el almacenamientotemporal de información.• La pila de los programas es del tipo• LIFO (Last In First Out, Ultimo en entrar, Primero ensalir).
  2. 2. • Para controlar la pila el microprocesador cuenta con dosinstrucciones básicas:• Push (Meter) y Pop (sacar).• El formato de estas instrucciones es el siguiente:• Push operando• Pop operando• Cuando se ejecuta la instrucción Push, el contenido deloperando se almacena en la ultima posición de la pila
  3. 3. • Por ejemplo, si AX se carga previamente con el valor 5,una instrucción Push AX almacenaría el valor 5 en laultima posición de la pila.• Por otro lado la instrucción Pop saca el último datoalmacenado en la pila y lo coloca en el operando.• Siguiendo el ejemplo anterior, la instrucción Pop BXobtendría el número 5 y lo almacenaría en el registro BX.• El siguiente ejemplo muestra como implementar lainstrucción XCHG por medio de las instrucciones Push yPop. Recuerde que la instrucción XCHG intercambia elcontenido de sus dos operandos.
  4. 4. • .COMMENT• Programa: PushPop.ASM• Descripción: Este programa demuestra el uso de las instrucciones para elmanejo de la• pila, implementando la instrucción XCHG con Push y Pop• *• .MODEL tiny• .CODE• Inicio: ;Punto de entrada al programa• Mov AX,5 ;AX=5• Mov BX,10 ;BX=10• Push AX ;Pila=5• Mov AX,BX ;AX=10• Pop BX ;BX=5• Mov AX,4C00h ;Terminar programa y salir al DOS• Int 21h ;• END Inicio• END
  5. 5. • ;Autor Victor De la Rocha• ;URL http://www.mis-algoritmos.com• .model small• .stack ;Nos sirve como un almacen (segmento de pila)• .data• var1 db 5• var2 db 3• .code• .startup• mov ah, 02h• mov dl, var1• add dl, 30h• int 21h• mov dl, +• int 21h• mov dl, var2• add dl, 30h• int 21h• mov dl,=• int 21h• mov ah,0h• mov al, var1• add al, var2• push AX ;Se guarda en la pila para no perder valores• mov dl,ah• mov ah, 02h• add dl, 30h• int 21h• pop AX ; Saca todos los valores de la pila• mov dl,al• add dl,30h• mov ah,02h• int 21h• .exit• end
  6. 6. • ; HOLA.ASM• ; Programa clásico de ejemplo. Despliega una leyenda en pantalla.• STACK SEGMENT STACK ; Segmento de pila• DW 64 DUP (?) ; Define espacio en la pila• STACK ENDS• DATA SEGMENT ; Segmento de datos• SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena• DATA ENDS• CODE SEGMENT ; Segmento de Codigo• ASSUME CS:CODE, DS:DATA, SS:STACK• INICIO: ; Punto de entrada al programa• MOV AX,DATA ; Pone direccion en AX• MOV DS,AX ; Pone la direccion en los registros• MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje• MOV AH,09H ; Funcion: Visualizar cadena• INT 21H ; Servicio: Funciones alto nivel DOS• MOV AH,4CH ; Funcion: Terminar• INT 21H• CODE ENDS• END INICIO ; Marca fin y define INICIO

×