Obligatorio 2 - Etiquetas y memoria

Obligatorio 2 - Etiquetas y memoria

de Gonzalo Labandera Sereno -
Número de respuestas: 3

Tenemos 2 programas, una es la rutina de interrupcion, y la otra es el bootloader.

Dentro del bootloader definimos etiquetas que son utilizadas para definir la LDT y los TSS de las tareas. Necesitamos hacer referencia a esas etiquetas desde el programa de la rutina, al utilizarlas etiquetas sin definirlas en el programa rutina nos da error de compilacion, como podemos indicarle a la rutina, que las etiquetas son las definidas en el programa bootloader?

Otra, sabiendo que la direccion donde se carga la gdt es la 0x7d34 (usando el debug del bochs), podemos asumir que conocemos esta direccion para referenciar donde se ubican las ldt/tss a la hora de cargarlas? no estariamos utilizando etiquetas sino directamente acceso a las direcciones y escribimos en memoria el contenido de las ldt/tss ?
 

Saludos
Muchas gracias

 

 

En respuesta a Gonzalo Labandera Sereno

Re: Obligatorio 2 - Etiquetas y memoria

de Martin Giachino -

1) Lo que quieres hacer lo resuelve el linker. Estoy asumiendo que la sintaxis que usaste es correcta, porque sino en ese caso sí es un error del compilador. Lo que tienes que hacer es indicarle al compilador que cuando compile eso que hace referencia a una etiqueta, tenga en cuenta que se resuelve mas adelante. Yo acabo de poner "c link to asm label" en google y el primer resultado que me apareció muestra formas de hacerlo.

2) Con etiquetas creo que es mejor. Quizás no están usando las etiquetas porque no han podido resolver 1), pero aconsejo fuertemente hacerlo, porque de lo contrario cualquier cambio en el asm puede impactarles en que todo deje de andar, si alguna de las direcciones cambia.

Martín

PD: Ayer en la clase de consulta lo dije, pero lo repito por las dudas. Las rutinas de atención de interrupciones pueden estar escritas en asm directamente, con lo cual se ahorran algunos problemas, por ejemplo tener que embeber asembler en C, manejar las etiquetas desde C, etc.

En respuesta a Martin Giachino

Re: Obligatorio 2 - Etiquetas y memoria

de Gonzalo Labandera Sereno -

Nuestras rutinas están hechas en assembler, lo que no sabemos es hacer referencia a una etiqueta definida en el archivo bootloader.asm desde el archivo interrupcionTeclado.asm.

Gracias por contestar, investigaremos