SEMANA 05_2
description
Transcript of SEMANA 05_2
SEMANA 05_2
SEGMENTO DE PILA
• EL SEGMENTO DE PILA ES UN AREA DE MEMORIA QUE SE RESERVA PARA HACER ALMACENAMIENTO TEMPORAL DE DATOS (16 BITS) O DIRECCIONES DE RETORNO PARA LOS SUBPROGRAMAS (SUBRUTINAS).
• LA DIRECCION DE ESTE SEGMENTO SE MANTIENE EN EL REGISTRO SS. EL REGISTRO PUNTERO DE PILA SP CONTIENE EL DESPLAZAMIENTO DE LA CIMA DE LA PILA CUYA DIRECCION ABSOLUTA ES POR TANTO SS:SP. EL REGISTRO DE BASE DE PILA BP SE UTILIZA PARA ACCEDER A LOS DATOS DEL SEGMENTO DE PILA ASI: [BP] , [BP+2], [BP+SI], ETC, REPRESENTAN SS:BP, SS:BP+2, SS:BP+SI, RESPECTIVAMENTE.
Lenguaje de maquina
SEGMENTO DE PILA
nombre SEGMENT STACK DB n DUP(?)nombre ENDS
EN DONDE:
nombre ES EL IDENTIFICADOR DEL SEGMENTO DE PROGRAMA DE TIPO PILA.
n ES EL NUMERO DE DIRECCIONES O TAMAÑO DEL SEGMENTO DE PILA DECLARADO (Que estara comprendido entre SS:0000 Y SS:n-1
Lenguaje de maquina
SEGMENTO DE PILA
…
…
SP = n
SEGMENTO DE PILA
Apila, crece
MEMORIADIRECCION
0
1
SS:n
SS:n-1
SS:0001
SS:0000
Lenguaje de maquina
APILAMIENTO: PUSH
• CON LA INSTRUCCIÓN: PUSH dato
SE APILA O PONE EL VALOR DE DATO SOBRE LA CIMA DE LA PILA, ES DECIR SP DISMINUYE SU VALOR EN DOS UNIDADES Y SE ESCRIBE EL VALOR DEL DATO EN LA DIRECCION ACTUAL( CON LOS OCTETOS EN ORDEN INVERTIDO).
EL DATO PUEDE SER UN REGISTRO O UN VALOR DE MEMORIA.
Lenguaje de maquina
APILAMIENTO: PUSH
• EJEMPLO: SI AX=10AFh Y SP=12E6h, ENTONCES PUSH AX
HACE: SP = 12E4h (12E6-2) Y PONE EL VALOR DE AX EN SS:SP. ASI EN LA PILA SE TIENE:
AF
10
SS:12E6
SS:12E5
SS:12E4
CIMA ANTERIOR
CIMA ACTUAL
Lenguaje de maquina
DESAPILAMIENTO: POP
• CON LA INSTRUCCIÓN: POP destino.
SE DESAPILA LA PALABRA A LA QUE APUNTA SP , ESTO ES, SE COPIA ESTA PALABRA EN EL DESTINO ( CON LOS OCTETOS EN ORDEN INVERTIDO) Y SP AUMENTA SU VALOR EN DOS UNIDADES.
EL DATO PUEDE SER UN REGISTRO O UN VALOR DE MEMORIA.
Lenguaje de maquina
DESAPILAMIENTO: POP
• EJEMPLO: SI LA PILA SE ENCUENTRA COMO EN LA FIGURA ANTERIOR, ENTONCES POP BX
PONE SP EN 12E6 Y BX RECIBE EL VALOR 10AF.
SS:12E6 CIMA ACTUAL
CIMA ANTERIOR
Lenguaje de maquina
ACCESO A LOS DATOS DEL SEGMENTO DE PILA
• LOS DATOS DEL SEGMENTO DE PILA PUEDEN SER ACCEDIDOS (SIN CAMBIAR LA CIMA DE LA PILA) A TRAVES DEL REGISTRO BASE DE PILA BP:
MOV AX,[BP] ; MUEVE A AX LOS DOS OCTETOS UBICADOS EN SS:BP
MOV BYTE PTR [BP+4],12h ; COMPARA EL OCTETO DADO EN
; SS:BP+4 CON 12h
Lenguaje de maquina