Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Riki_89D en 5 Marzo 2010, 21:25 pm



Título: El sector de arranque (ASM)
Publicado por: Riki_89D en 5 Marzo 2010, 21:25 pm
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


Título: Re: El sector de arranque (ASM)
Publicado por: Riki_89D en 5 Marzo 2010, 21:38 pm
He encontrado este code en FASM,es sobre el setor de arranque,sesupone que debe salir un "HOL MUNDO":
Código
  1. org 0x7C00
  2. use16
  3.  
  4. ;-----------------------------; INICIO
  5.  
  6. inicio:
  7.  
  8.   xor      ax,ax      ; AX = 0
  9.   mov      ds,ax      ; DS = 0
  10.   mov      si,msg      ; SI apunta a msg
  11.   call      print      ; Llamamos al procedimiento print
  12.  
  13.   jmp  $
  14.  
  15. ;-----------------------------; PRINT
  16. print:
  17.  
  18.   lodsb            ; Cargamos el caracter de DS:SI en AL
  19.   or   al,al         ; Hacemos un OR al registro AL
  20.   jz    .fin_print      ; Terminamos si es cero
  21.   mov   ah,0x0E         ; Poner caracter (parametro int 0x10)
  22.   int   0x10            ; BIOS VIDEO
  23.   jmp   print         ; Siguiente caracter
  24.  
  25. .fin_print:
  26.  
  27.   ret            ; termina el procedimiento y regresamos
  28.  
  29. ;-----------------------------; CONSTANTES
  30.  
  31.   msg   db   " HOLA MUNDO!",0      
  32.  
  33. ;-----------------------------; FIRMA
  34.  
  35. times 510- ($-inicio)  db 0
  36. dw 0xaa55
  37.  


alfinal de todo me queda un archivo .BIN,que ago entonces para probar eso?? que hago con el archivo BIN????



salu2


Título: Re: El sector de arranque (ASM)
Publicado por: bizco en 5 Marzo 2010, 22:45 pm
Citar
El ensamblador: gas    (No lo e encontrado :()

yo creo que se habla de gnu assembler (gas).


Título: Re: El sector de arranque (ASM)
Publicado por: Riki_89D en 5 Marzo 2010, 22:56 pm
I que me dices del .BIN??? pueod meterlo en un Pnendrive i arrancar desde alli???



salu2


Título: Re: El sector de arranque (ASM)
Publicado por: 08l00D en 6 Marzo 2010, 00:43 am
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..


Título: Re: El sector de arranque (ASM)
Publicado por: Riki_89D en 6 Marzo 2010, 19:39 pm
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


Título: Re: El sector de arranque (ASM)
Publicado por: 08l00D en 6 Marzo 2010, 20:23 pm
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/
Código:
mkbt tu_archivo.bin tu_archivo.img
Para ejecutar QEMU..
Código:
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


Título: Re: El sector de arranque (ASM)
Publicado por: Riki_89D en 6 Marzo 2010, 21:11 pm
ok,yo ago:  mkbt Boot.bin IMagen.img

i me dice k IMagen.img no existe,entonces ese archivo ya tiene k estar creado???


Título: Re: El sector de arranque (ASM)
Publicado por: 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??


Título: Re: El sector de arranque (ASM)
Publicado por: 08l00D en 7 Marzo 2010, 20:10 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


Título: Re: El sector de arranque (ASM)
Publicado por: Riki_89D en 7 Marzo 2010, 21:03 pm
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


Título: Re: El sector de arranque (ASM)
Publicado por: 08l00D en 7 Marzo 2010, 21:11 pm
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...


Título: Re: El sector de arranque (ASM)
Publicado por: JaimeAsm en 8 Marzo 2010, 13:19 pm
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!


Título: Re: El sector de arranque (ASM)
Publicado por: Riki_89D en 18 Abril 2010, 20:06 pm
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