hola a todos espero que esten bien

encontre este tutorial que puede servirnos :
BOOTLOADER HOLA MUNDO
=====================
Empecemos por ver el BL del tutorial anterior:
;///////////////////////////////////////////////////////////////////////;
org 0x7C00
use16
inicio:
jmp $
times 510-($-inicio) db 0
dw 0xaa55
;///////////////////////////////////////////////////////////////////////;
Ya hemos indicado al compilador que el BL será cargado por el BIOS en la
locación de memoria 0x7C00:
org 0x7C00
Ahora alinearemos el segmento de datos (DS) en:
0x7C00:0x0000
ya que nuestro segmento de código (CS) ya está alineado lo único que
necesitamos hacer es copiar en DS el valor de CS. Para hacerlo utilizamos
la pila:
push cs
pop ds
Pudimos haber hecho lo mismo de esta forma:
xor ax,ax
mov ds,ax
EL resultado es el mismo.
Ya que nuestro BL pondrá en pantalla un "Hola Mundo" necesitamos un
procedimiento para lograrlo, el procediemiento lo llamaremos "print" y
recibirá como argumento el mensaje que queremos poner en pantalla, ejemplo:
mov si,hola
El procedimiento es este:
;///////////////////////////////////////////////////////////////////////;
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
;///////////////////////////////////////////////////////////////////////;
Este procedimiento utiliza el interruptor 0x10 de la BIOS para poner los
caracteres en pantalla.
Nuestro mensaje estará definido de esta manera:
msg db " HOLA MUNDO!",0
El cero al final indica donde termina la cadena. Ahora para llamar a nuestro
procedimiento utilizamos:
call print
El código de nuestro BL Hola Mundo quedará entonces de esta manera:
;///////////////////////////////////////////////////////////////////////;
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
;///////////////////////////////////////////////////////////////////////;
COPILANDO HOLA MUNDO
====================
Listo! Ahora deberás copiar este código en un archivo y llamarlo "boot.asm",
el nombre puede ser cualquiera, luego de guardar el documento puedes
compilarlo con FASM de esta manera:
fasm boot.asm
FASM creará un archivo llamado "boot.bin", ese es un archivo binario que
contiene nuestro BL.
PONIENDO EL BL EN UN FLOPPY (WINDOWS)
=====================================
Para poder probar tu BL deberás disponer de un floppy, si utilizas Windows
necesitarás el programa PartCopy que puedes conseguir en:
http://my.execpc.com/~geezer/johnfine/pcopy02.zipluego de bajar el programa puedes copiar el BL en el primer sector del floppy
de esta forma:
pcopy boot.bin 0 200 -f0
Si no quieres utilizar PartCopy también puedes hacer lo mismo con el programa
DEBUG que trae Windows de esta manera:
C:\DEBUG.EXE boot.bin
-W 100 0 0 1
-Q
C:\
La "W" significa escribir (write), el número 1 al final significa la cantidad
de sectores que se copiarán. Puedes escribir "?" para ver la ayuda del programa.
Debes tener cuidado al utilizar DEBUG ya que puedes equivocarte y borrar datos
importantes del disco duro y dejar inutilizable tu Windows.
Listo!! Ahora puedes reiniciar tu computadora con el floppy dentro y ver el
mensaje Hola Mundo en tu pantalla, como hemos utilizado un loop infinito
necesitarás reiniciarla para terminar.
PONIENDO EL BL EN UN FLOPPY (LINUX)
===================================
En linux luego de compilar necesitas abrir un terminal en el folder en donde se
encuentra tu archivo "boot.bin" y escribir:
dd if=boot.bin bs=512 of=/dev/fd0
Eso copiara los 512 bytes del BL en tu floppy.
Listo!! Ahora puedes reiniciar tu computadora con el floppy dentro y ver el
mensaje Hola Mundo en tu pantalla, como hemos utilizado un loop infinito
necesitarás reiniciarla para terminar.
;-----------------------------------------------------------------------;
En los próximos tutoriales aprenderemos a:
+ Crear un BL que cargue el kernel
+ Crear nuestro Kernel "Hola Mundo!"
+ Crearemos una CLI (Interfaz de Línea de Comandos)
+ Aprenderemos a cargar programas
+ Entraremos en Modo Gráfico
+ Pondremos nuestros primeros píxeles en pantalla
+ Crearemos una interfaz gráfica sencilla
+ Crearemos algunos programas para nuestro SO
+ Aprenderemos a entrar en Modo Protegido (hasta 4GB de memoria!)
+ ETC
los que quierean ver mas en :
http://tech.todoprogra.com/category/tutorial-nodos/ bueno yo opino que tambien podemos trabajar FASM
los que les interese este programa lo pueden descargar gratis en:
http://flatassembler.net/download.php y cambiando de tema
les pregunto a todos los que estamos trabajando en el SO si quieren formar parte de un grupo de informatica que recien crearemos necesito nombres para el grupo yo tambien estoy preparando la pagina web solo faltan algunos ajustes los interesados informenme en el team todos seran iguales.
bueno a seguir trabajando buena suerte a todos
