Despues de varios dias y bastantes intentos, he logrado crear una imagen iso capaz de arrancar desde la BIOS, mi pregunta es ¿ cual sería el suiguiente paso lógico para hacer algo mas, como un mini kernel o algo así ?
lo cree con MASM 6.15 y la imagen ISO con MISO.
Por si le interesa a alguien dejo el código;
; compilar: ml /AT /c /Zm primero.asm
; linkar : LINK /TINY primero
; crear iso : miso primero.iso -ab primero.com
.model tiny
COMSEG SEGMENT
org 7C00h ; requerido por la BIOS
start:
mov ax, 00h
mov ds, ax
lea si,[ds: MyStr] ; si apunta a la cadena MyStr
mov ah, 0Eh ; para int 10 escribir pantalla
mov bh, 00h ; numero pagina video
mov cx,27 ; numero caracteres cadena MyStr
loopit: lodsb ; carga AL con caracter incrementa SI
int 10h ; llamada bios
LOOP loopit ; decremente CX , repetir si CX no es cero
jmp $
MyStr db "Arranque creado por TomDiPe"
db 510-($-start) dup (0) ;Loads of zeroes
dw 0AA55h
COMSEG ENDS
end start
lo cree con MASM 6.15 y la imagen ISO con MISO.
Por si le interesa a alguien dejo el código;
; compilar: ml /AT /c /Zm primero.asm
; linkar : LINK /TINY primero
; crear iso : miso primero.iso -ab primero.com
.model tiny
COMSEG SEGMENT
org 7C00h ; requerido por la BIOS
start:
mov ax, 00h
mov ds, ax
lea si,[ds: MyStr] ; si apunta a la cadena MyStr
mov ah, 0Eh ; para int 10 escribir pantalla
mov bh, 00h ; numero pagina video
mov cx,27 ; numero caracteres cadena MyStr
loopit: lodsb ; carga AL con caracter incrementa SI
int 10h ; llamada bios
LOOP loopit ; decremente CX , repetir si CX no es cero
jmp $
MyStr db "Arranque creado por TomDiPe"
db 510-($-start) dup (0) ;Loads of zeroes
dw 0AA55h
COMSEG ENDS
end start