Programación General > ASM (Ensamblador)

 Bootloader GDT, dudas varias

<< < (2/2)

posman:

--- Cita de: "Anthares" ---1)
Para crear un semento en memoria tengo que crear un descriptor en la tabla GDT que lo defina, entre esos datos esta la base y el limite del mismo.

La base es una direccion de memoria y el limite es el tamaño del segmento verdad?
--- Fin de la cita ---

Si y no. Efectivamente para la GDT hay que especificar la base (direccion de memoria donde inicia) y el limite. Pero tu preguntas si es la base y el limite de cada segmento y eso es incorrecto. La base y el limite son para la GDT completa (la GDT es global y solamente existe una). Dentro de la GDT defines los segmentos. Puedes definir algunos temporales solamente para cambiarte al modo protegido. Despues podrias crear otra GDT y actualizar de nuevo el registro CR3. Con esto ya estarias utilizando la nueva GDT que definiste (con los segmentos que hayas puesto dentro) y la anterior GDT ya no sera valida.


--- Cita de: "Anthares" ---Ese tamaño es en bytes verdad?

--- Fin de la cita ---

Correcto

Anthares:
Gracais x la aclaracion la verdad que habia entendido mal  :argh:

Saludos  :)  :hola:

posman:

--- Cita de: "Anthares" ---3) Lo otro que no entiendo es como uno selecciona en que areas de la memoria le conviene tener los distintos segmentos a usar: codigo, datos, pila
--- Fin de la cita ---

No se como podrias seleccionar la parte de memoria mas "conveniente" para tener la GDT, pero hay partes de memoria en donde no deberias ponerla. Al arrancar, el BIOS coloca ciertos datos en memoria y no conviene sobreescribirlos ya que podrian ser de utilidad despues. Aqui esta un link a una pagina (con texto en ingles) donde se muestra el mapa de la memoria al arrancar.

http://wiki.osdev.org/Memory_Map_(x86)

Hay muchas cosas que te pueden servir en esta pagina, aunque esta en ingles
http://wiki.osdev.org

Anthares:
;)  si no importa algo me defiendo con el ingles gracias!  :devil:

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa