Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/05/2007, 05:41
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Lenguaje Ensamblador + Tasm

Cita:
Iniciado por Instru Ver Mensaje
Ok, son 512 bytes.
Pero alguna vez llegue a leer que el programa no empieza exactamente en el offset 0. Esto es cierto? Y supongo que tu programa inicial debe caber en esos 512 y que de ahi debes pasar a modo protegido para poder "cargar" un programa mas grande no?. Y si quisieramos que este program arrancara desde el boot del PC, tendriamos que ponerlo en el boot sector de alguna unidad(hdd, cdrom, etc). no?
Si, son 512 bytes contando la marca del final que son 2 bytes que indican si es booteable o no el sector, osea que quedan 510 bytes para el codigo y el file system.
Efectivamente empieza donde lo carga la BIOS y eso es en 0x7C00:0000. El programa inicial no suele pasar a modo protegido aunque se puede hacer. Generalmente carga otro programa (por ejemplo en NT carga el NTLDR) que tambien es de 16 bits y tiene un tamaño mucho mayor, este se ocupara despues de cargar el Kernel y pasar a modo protegido. Si, para que arranque tiene que estar en el boot sector de algun dispositivo que la BIOS soporte para bootear.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO