Hola que tal estan??
bueno vi una practica en PDF que explicaba como programar el sector de arraque de un ordenador y a la vez definia lo que es el sector de arrranque,pues bien el code que poninan solo colgaba el PC,pero es para ver como se programa i tal en ASM de 16 BIts (a modo real), para realizar esa practica me piden estos programas:
El ensamblador: gas (No lo e encontrado :()
El Enlazador: id (No lo e encontrado)
El emulador: Qemu (Este si lo encontre)
i digo yo,no se puede hacer eso por ejemplo con FASM?????
como seria el code con FASM??
salu2
He encontrado este code en FASM,es sobre el setor de arranque,sesupone que debe salir un "HOL MUNDO":
org 0x7C00
use16
;-----------------------------; INICIO
inicio:
xor ax,ax ; AX = 0
mov ds,ax ; DS = 0
mov si,msg ; SI apunta a msg
call print ; Llamamos al procedimiento print
jmp $
;-----------------------------; PRINT
print:
lodsb ; Cargamos el caracter de DS:SI en AL
or al,al ; Hacemos un OR al registro AL
jz .fin_print ; Terminamos si es cero
mov ah,0x0E ; Poner caracter (parametro int 0x10)
int 0x10 ; BIOS VIDEO
jmp print ; Siguiente caracter
.fin_print:
ret ; termina el procedimiento y regresamos
;-----------------------------; CONSTANTES
msg db " HOLA MUNDO!",0
;-----------------------------; FIRMA
times 510- ($-inicio) db 0
dw 0xaa55
alfinal de todo me queda un archivo .BIN,que ago entonces para probar eso?? que hago con el archivo BIN????
salu2
CitarEl ensamblador: gas (No lo e encontrado :()
yo creo que se habla de gnu assembler (gas).
I que me dices del .BIN??? pueod meterlo en un Pnendrive i arrancar desde alli???
salu2
Si, podes hacer booteable un pendrive hay herramientas para ello. Pero tampoco es necesario para lo que queres hacer, algo mas aconsejable es que testees esas cosas en una virtual machine o maquina virtual como bochs o qemu.
Busca en google vas a encontrar informacion a montones, en la pagina http://osdev.org tambien hay mucha informacion acerca del sector de arranque que supongo te sera de interes...
Y por lo de gas y ld, son herramientas parte de gnu utilities y desconozco si hay un port para windows, lo que si podes usar cygwin para emular un entorno unix instalar los paquetes binutils y usarlos desde ese entorno emulado..
OK,pues ya tengo el QEMU,Pero,como le digo al QEMU que inicio mi Archvo BIN (BOOT.BIN) para ver si funciona correcatmente????
e buscadoe n google tutoriales i me salen paa emular Windows i son para Linux :(
salu2
Con QEMU podes emular el booteo desde un CD, disco Floppy, etc. Para eso tenes que crear una imagen con tu archivo binario, y despues se lo pasas como parametro a QEMU...
Para crear el archivo imagen -> http://www.nu2.nu/mkbt/
mkbt tu_archivo.bin tu_archivo.img
Para ejecutar QEMU..
qemu -L .\ -fda tu_archivo.img
http://wiki.osdev.org/Bare_Bones
http://wiki.osdev.org/QEMU
http://wiki.osdev.org/Disk_Images
http://www.nu2.nu/mkbt/
tan bien no habias buscado :P
ok,yo ago: mkbt Boot.bin IMagen.img
i me dice k IMagen.img no existe,entonces ese archivo ya tiene k estar creado???
É Echo esto:
qemu -L .\ -fda Boot.BIN
i me a salido EL HOLA MUNDO ^^ me a funcionado!!
i la ultima pregunta es,ara para k me vaya en el pc isn el qemu osea para probarlo de verdad devria grabarlo en un CD rom asin tal kual i ejecutar el CD desde el inico del PC no??
Cita de: Riki_89D en 6 Marzo 2010, 21:15 PM
É Echo esto:
qemu -L .\ -fda Boot.BIN
i me a salido EL HOLA MUNDO ^^ me a funcionado!!
i la ultima pregunta es,ara para k me vaya en el pc isn el qemu osea para probarlo de verdad devria grabarlo en un CD rom asin tal kual i ejecutar el CD desde el inico del PC no??
Hacer un CD Booteable es otra historia, hay un estandar especifico llamado El Torito para hacer booteable un CD.
Te recomiendo que te pongas a leer antes que nada.. mira aca te dejo un par de links ...
http://wiki.osdev.org/El-Torito
http://wiki.osdev.org/Bootable_CD
Entonces el archivo Boot.bin por lo que e leido debp pasarlo a ISO i grabarlo en un CD para que me funcione desde la BIOS??????? o tengo k meter el Boot.BIN en una carpeta i grabarla sin tal kual ene l CD??c
Segun el estandar El Torito una de las formas en la que podes bootear desde un CD que la BIOS haga una emulacion de un booteo desde floppy, para eso tenes que quemar una imagen floppy en el CD...
Lee los links que te puse, y busca en google las preguntas que haces las podes encontrar sin problemas buscando un poco...
Yo tegno el mismo problema,con FASM obtengo el BIN,con el QEMU pongo QEMU -L .\ hda Boot.BIN i me sale bien.pero nse como grabarlo en un CD i probarlo desde la BIOS real!
Ya esta por fin!!! ya me funciona desde el CD pues menuda tonteria era,solo tenia k grabar el bin con el nero 8 i no el 6 como hacia yo k seve k no va muy bien o eso e experimentado xD
SALU2