Ensamblador - RUTINAS EN EL SECTOR DE ARRANQUE

 
Vista:

RUTINAS EN EL SECTOR DE ARRANQUE

Publicado por luiyi (5 intervenciones) el 19/07/2004 23:18:30
HOLA. tengo un problemin: ya hice una tutina con interrupciones de BIOS para hacer una especie de megamini nucleo de sistema operativo, pero tengo un problema: se que debe escribirse en los ultimos dos bytes el 55AA para indicar que es un programa destinado al sector de arranque o Master Boot Record; tambien se que es en la pista 0 cabeza 0 sector 1 donde se debe guardar la rutina pero COMO LO HAGO? es decir como meto el programa ahi? en assembler? en el còdigo de mi rutina? donde? porque no es solo asi que hago el programa y luego como lo meto.........si si muchos me han dicho solo hay que ponerlo en tal lugar y ya.........jajaja si pero COMO? a quien pueda ayudarme le agradezco de antemano. Luiyi.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:RUTINAS EN EL SECTOR DE ARRANQUE

Publicado por ge-ergon (18 intervenciones) el 23/07/2004 07:26:27
Hola!

Puedes crear un programa para guardar el archivo binario en el sector lógico cero del diskette. Usando las interrupciones del OS DOS, llamadas "absolute disk write/read" (int 25, int 26).

O puedes usar el debug. (mas sencillo).

Proceso:
En la linea de comando ejecute esto:

C:\> Debug
- N xarchivo.bin
- L
- W 0100 0 0 1
- Q

Consideraciones:
.El floppy debe estar en la unidad
.El archivo "xarchivo.bin" es el archivo en binario de la rutina escrita.
(no mayor a 512 bytes)
.Asegurese que el archivo debe tener el byte 511 igual a 55h, y el byte 512 con el valor de AAh.

Explicación del los comandos del DEBUG aqui:
http://www.armory.com/~rstevew/Public/Tutor/Debug/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RUTINAS EN EL SECTOR DE ARRANQUE

Publicado por Alejandro Hernandez (2 intervenciones) el 07/12/2004 19:32:52
pero como puedes crear tu archivo a binario si un programa hecho en c por ejemplo?? esto en windows???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RUTINAS EN EL SECTOR DE ARRANQUE

Publicado por Luiyi (5 intervenciones) el 07/12/2004 19:36:40
a pues mira, si en windows claro (yo pronto vere como se hac e en linux conste). bueno si tu archivo estuviera en C basta con hacer un .EXE de ese archivo. luego ese archivo .EXE es el que se convierte a .BIN y ya en .BIN lo subes a los sectores y listo. Puede ser un Pascal, un C o un assembler incluso. Pero no soy docto en esto, estoy aprendiendo conste. salu2
Luiyi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RUTINAS EN EL SECTOR DE ARRANQUE

Publicado por alejandro hernandez (2 intervenciones) el 07/12/2004 20:49:45
mi pregunta es como hago o con que programa un archivo ejecutable a binario o un obj a binario solo necesito yegar a binario y como hago eso?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RUTINAS EN EL SECTOR DE ARRANQUE

Publicado por jesus segura (1 intervención) el 25/09/2005 03:16:41
usa el programa fdvol
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:RUTINAS EN EL SECTOR DE ARRANQUE

Publicado por David P. (1 intervención) el 15/10/2005 19:01:23
usando la int 13h copias tu miniprograma (nucleo) en ( c:0 p:0 s:1) dandole la direccion de memoria(offset) al registro dx igual al programa que quieras poner en el sector de arranque y ya esta.

Ejemplo:

arranque.txt;debes compilarlo como exe es mas fiable

;conjunto de registros que hacen uso de la int 13h para copiar los datos en el sector de arranque:

mov ax,0301h
mov cx,0001h
mov dh,00h
mov dl,0
mov bx,offset arrq
int 13h

arrq:

jmp inicio
;reservar 50 bytes
reservo1 dw 0 hasta el reservo25 DW y un reservo26 de tipo byte(reservo26 db 0)
inicio:
cli
xor si,si
mov ss,si
mov sp,7c00h
mov bp,7c00h
sti

;aqui pondrias el codigo que desees

fin del programa arranque

NOTA: RESERVO ESOS BYTES PORQUE EL DISCO TIENE UNOS 53 BYTES EN ESTE SECTOR PARA DATOS PRIVADOR COMO NUMERO DE CARAS,PARTICIONES,ETC..
PUEDES AÑADIRLE CONTROL DE ERRORES PERO LA ESTRUCTURA BASICA ES LA QUE TE DADO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar