90 likes | 199 Views
SEMANA 05_2. Lenguaje de maquina. 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).
E N D
Lenguaje de maquina 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 DIRECCION MEMORIA 0 1 SS:0000 SS:0001 SEGMENTO DE PILA SS:n-1 Apila, crece SP = n SS:n
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: CIMA ACTUAL SS:12E4 SS:12E5 SS:12E6 CIMA ANTERIOR
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. CIMA ANTERIOR SS:12E6 CIMA ACTUAL
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