123456789101112131415161718192021222324252627 |
- [org 0x7c00] ; bootloader offset
- mov bp, 0x9000 ; set the stack
- mov sp, bp
- mov bx, MSG_REAL_MODE
- call print ; This will be written after the BIOS messages
- call switch_to_pm
- jmp $ ; this will actually never be executed
- %include "../05-bootsector-functions-strings/boot_sect_print.asm"
- %include "../09-32bit-gdt/32bit-gdt.asm"
- %include "../08-32bit-print/32bit-print.asm"
- %include "32bit-switch.asm"
- [bits 32]
- BEGIN_PM: ; after the switch we will get here
- mov ebx, MSG_PROT_MODE
- call print_string_pm ; Note that this will be written at the top left corner
- jmp $
- MSG_REAL_MODE db "Started in 16-bit real mode", 0
- MSG_PROT_MODE db "Loaded 32-bit protected mode", 0
- ; bootsector
- times 510-($-$$) db 0
- dw 0xaa55
|