Bueno la verdad, la duda no es sobre el paso a modo protegido, sino que no estoy seguro si esta funcionando como deberia. He buscado muchisima información pero nada ayuda a salir de mi duda.
Ahora explicando, pues el bootloader es bastante simple, arranca el sistema, muestra un mensaje, luego pasa a modo protegido y muestra otro mensaje, el problema es que el segundo mensaje no se imprime en la pantalla al 100 %. Cree un blog en el que voy publicando cualquier avance, y ahi esta mi duda.
Por cierto, el código está publicado y recién estoy empezando, la publicación del blog es INNECESARIA. Esto lo estoy haciendo para aprender y para que otras personas se animen a aprender.
;----------------boot.asm------------------;
[BITS 16]
[ORG 0x7c00]
jmp main
bootmesg db "Loading... please wait... "
pm_mesg db "Switching to protected mode. "
init:
mov ax, cs
mov ds, ax
mov es, ax
ret
print_mesg :
mov ah,0x13
mov al,0x00
mov bx,0x0007
mov cx,0x20
mov dx,0x0000
int 0x10
ret
clrscr :
mov ax,0x0600
mov cx,0x0000
mov dx,0x174f
mov bh,0
int 0x10
ret
switch_protected:
cli
mov eax, cr0
or eax, 1
mov cr0, eax
jmp 0x08:protected_main
main:
call init
call clrscr
mov bp,bootmesg
call print_mesg
call switch_protected
jmp main
[BITS 32]
protected_main:
mov bp,pm_mesg
call print_mesg
jmp protected_main
times 510-($-$$) db 0
db 0x55
db 0xAA