SEMANA 05_2

9
SEMANA 05_2

description

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). - PowerPoint PPT Presentation

Transcript of SEMANA 05_2

Page 1: SEMANA 05_2

SEMANA 05_2

Page 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

Page 3: SEMANA 05_2

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

Page 4: SEMANA 05_2

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

Page 5: SEMANA 05_2

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

Page 6: SEMANA 05_2

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

Page 7: SEMANA 05_2

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

Page 8: SEMANA 05_2

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

Page 9: SEMANA 05_2

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