Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porTristán Dominguez Modificado hace 10 años
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 =
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.