La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco.

Presentaciones similares


Presentación del tema: "1 Uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco."— Transcripción de la presentación:

1 1 Uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

2 2 La tarea en curso va a ejecutar la instrucción CALL 0017:1234H Se conoce el contenido de los registros: También se dispone de un volcado de diferentes zonas de memoria: La tarea en curso va a ejecutar la instrucción CALL 0017:1234H Se conoce el contenido de los registros: También se dispone de un volcado de diferentes zonas de memoria: Ejemplo de uso de una CALL GATE 4528H LDTR 0050000FFFH GDTR 000EH SS 0006H CS 00008206000003FFFH CPL = 2 4A80H SP 3785H IP Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

3 3 Ejemplo de uso de una CALL GATE Volcado de memoria: Se pide detallar todas las cargas de registro de segmento que se produzcan y reflejar el estado de la pila actual y al entrar a la subrutina. Volcado de memoria: Se pide detallar todas las cargas de registro de segmento que se produzcan y reflejar el estado de la pila actual y al entrar a la subrutina. Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

4 4 CALL 0017:1234H Ejemplo de uso de una CALL GATE RPL = 3TI = 1 ; LDT Indice = 2 0000 0000 0001 0111 Selector Descriptor Tabla de descriptores Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

5 5 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Offset = Indice * 8 = 2 * 8 = 10H 4528H LDTR 00008206000003FFFH Dir. Base LDT = 60000H Dir. Física descriptor = Dir. Base LDT + offset = 60010H OK Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

6 6 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Tipo = CALL GATE Descriptor = 00 00 E4 03 00 40 34 56 H Offset = 3456 H D.A. = 1110 0100 2/3 = 0 (16 bits) GATE DPL = 3 P=1 WORD COUNT = 3 Selector = 40 H Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

7 7 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Tipo = CALL GATE Descriptor = 00 00 E4 03 00 40 34 56 H Offset = 3456 H D.A. = 1110 0100 2/3 = 0 (16 bits) GATE DPL = 3 P=1 DWORD COUNT = 3 Selector = 40 H OK Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

8 8 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Tipo = CALL GATEDescriptor = 00 00 E4 03 00 40 34 56 H 2/3 = 0 (16 bits) GATE DPL = 3 P=1 OK EPL = MAX (CPL, RPL) EPL = MAX (2, 3) EPL = 3 CALL 0017:1234HCS = 6 Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío OK

9 9 Ejemplo de uso de una CALL GATE Llamada a través de la CALL GATE Call gate con instr. CALL Sgte. paso Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

10 10 Localizar el descriptor de segmento de código. Ejemplo de uso de una CALL GATE 0000 0000 0100 0000 Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Descriptor GATE = 00 00 E4 03 00 40 34 56 H Selector = 40 H RPL = 0, pero no se usa [3] TI = 0 ; GDT Indice = 8

11 11 Localizar el descriptor de segmento de código. Ejemplo de uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Offset = Indice * 8 = 8 * 8 = 40H Dir. Física descriptor = Dir. Base GDT + offset = 5040H 0050000FFFH GDTR Dir. Base GDT = 5000H OK

12 12 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Tipo = Segm.Código Descriptor = 07 00 98 54 38 80 1F F5 H Dir. Base = 07543880 H D.A. = 10011000 C = 0 (No conforme) R = 0 (No legible) A = 0 (Accedido) Gr. =0 Def. = 0 (Tarea 16 bits) Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Segm. DPL = 0 P = 1 Límite = 1FF5H

13 13 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Tipo = Segm.Código Descriptor = 07 00 98 54 38 80 1F F5 H Dir. Base = 07543880 H D.A. = 10011000 C = 0 (No conforme) R = 0 (No legible) A = 0 (Accedido) Gr. =0 Def. = 0 (Tarea 16 bits) Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Segm. DPL = 0 P = 1 Límite = 1FF5H OK

14 14 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Tipo = Segm.Código Descriptor = 07 00 98 54 38 80 1F F5 H C = 0 (No conforme) R = 0 (No legible) A = 0 (Accedido) Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Segm. DPL = 0 P = 1 CPL = 2 CS = 6 OK CPL Cambia

15 15 Ejemplo de uso de una CALL GATE Llamada a través de la CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Cambiar de pila Call gate con instr. CALL y cambio de CPL

16 16 Leer del TSS los valores de SS y SP para el nuevo CPL. Ejemplo de uso de una CALL GATE 0000 0000 0011 1000 Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío SP 0 2F42 H RPL = 0TI = 0 ; GDT Indice = 7 SS 0 0038 H TSS (Task Status Segment) Selector = 38 H

17 17 Localizar el descriptor de segmento de código. Ejemplo de uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Offset = Indice * 8 = 7 * 8 = 38HDir. Base GDT = 5000H Dir. Física descriptor = Dir. Base GDT + offset = 5038H 0050000FFFH GDTR OK

18 18 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Tipo = Segm.Datos Descriptor = 00 00 92 01 01 00 2F FF H Dir. Base = 00010100 H D.A. = 10010010 ED = 0 (Normal) W = 1 (Escribible) A = 0 (No accedido)Gr. =0 Big = 0 (Pila de 16 bits) Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Segm. DPL = 0 P = 1 Límite = 2FFFH

19 19 Localizar y leer el descriptor [10] OK Ejemplo de uso de una CALL GATE Tipo = Segm.Datos Descriptor = 00 00 92 01 01 00 2F FF H Dir. Base = 00010100 H D.A. = 10010010 ED = 0 (Normal) W = 1 (Escribible) A = 0 (No accedido) Gr. =0 Big = 0 (Pila de 16 bits) Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Segm. DPL = 0 P = 1 Límite = 2FFFH

20 20 Localizar y leer el descriptor [10] Ejemplo de uso de una CALL GATE Tipo = Segm.Datos Descriptor = 00 00 92 01 01 00 2F FF H ED = 0 (Normal) W = 1 (Escribible) A = 0 (No accedido) Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Segm. DPL = 0 P = 1 OK Nuevo CPL = 0 RPL = 0 SS 0 0038 H OK

21 21 Ejemplo de uso de una CALL GATE Dirección de memoria apuntada por el nuevo puntero de pila: 00 00 92 01 01 00 2F FF H Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Dir. Base = 00010100 HSP = 2F42H Ptro. Pila = Dir. Base + Offset = 00010100H + 2F42H = 13042H SP = 2F42 H SS = 0038 H

22 22 Ejemplo de uso de una CALL GATE Llamada a través de la CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Almacenar datos en la nueva pila Call gate con instr. CALL y cambio de CPL

23 23 Calcular dirección de memoria de la pila anterior Ejemplo de uso de una CALL GATE 0000 0000 0000 1110 Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío SP ant 4A80 H RPL = 2TI = 1 ; LDT Indice = 1 SS ant 000E H TSS (Task Status Segment) Selector = 0E H

24 24 Ejemplo de uso de una CALL GATE Localizar y leer un descriptor [10] Offset = Indice * 8 = 1 * 8 = 8 4528H LDTR 00008206000003FFFH Dir. Base LDT = 60000H Dir. Física descriptor = Dir. Base LDT + offset = 60008H OK Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío

25 25 Ejemplo de uso de una CALL GATE Localizar y leer el descriptor [10] Como el descriptor estaba cargado en SS sabemos que cumplía todas las reglas. Sólo nos interesa su Dir. Base. Localizar y leer el descriptor [10] Como el descriptor estaba cargado en SS sabemos que cumplía todas las reglas. Sólo nos interesa su Dir. Base. Descriptor = 00 00 92 06 B0 00 2F FF H Dir. Base = 0006B000 H Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío SP ant = 1A80H Ptro. Pila ant = Dir. Base + Offset = 0006B000H + 1A80H = 6CA80H

26 26 Localizar y leer el contenido de la pila anterior Como el descriptor de la CALL GATE el bit 2/3 = 0 (16 bits) y WORD COUNT = 3, tenemos almacenadas tres words en la antigua pila. Localizar y leer el contenido de la pila anterior Como el descriptor de la CALL GATE el bit 2/3 = 0 (16 bits) y WORD COUNT = 3, tenemos almacenadas tres words en la antigua pila. Ejemplo de uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Ptro. Pila ant = 6CA80H 45H 27H 2AH 33H FFH 78H

27 27 Almacenar información en la nueva pila Ptro. Pila = Ejemplo de uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío 45H 27H 2AH 33H FFH 78H Ptro. Pila ant 06 00 80 4A 85 37 45H 27H 2AH 33H FFH 78H 13042H 0F 00 SP ant 4A80 H SS ant 000F H 4A80 H CS IP 0006 H 3785 H 0006 H 3785 H 13040H 1303EH 13038H 13036H 13034H SS ant SP ant Parám. CS IP

28 28 Ejemplo de uso de una CALL GATE Llamada a través de la CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Cargar los nuevos valores de CS e IP Call gate con instr. CALL y cambio de CPL

29 29 Ejemplo de uso de una CALL GATE Llamada a través de la CAL GATE instrucción CALL 0017:1234H Llamada a través de la CAL GATE instrucción CALL 0017:1234H Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco Machío Descriptor segm. Código = 07 00 98 54 38 80 1F F5 H Descriptor CALL GATE = 00 00 E4 03 00 40 34 56 H 07 00 98 54 38 80 1F F5 H CS = 0040 H 3456H IP =


Descargar ppt "1 Uso de una CALL GATE Universidad Pontificia de Salamanca (Madrid) Dpto. de Electrónica y Comunicaciones. © Alfonso Alejandre, Luis Azorín y Francisco."

Presentaciones similares


Anuncios Google