mbr.asm | ||
Readme.md |
== Instruction ==
Build with nasm -f bin mbr.asm -o mbr
Run with qemu-system-x86_64 -boot a -fda mbr
== Bios Memory ==
0x0 - 0x03FF ;IVT 0x400 - 0x4FF ;BIOS Data 0x500 - 0x7BFF ;Unused 0x7C00 - 0x7D77 ;Bootloader 0x7E00 - 0x9FFFF ;Unused 0xA0000 - 0xBFFFF ;Video memory 0xB0000 - 0xB7777 ;Video memory monochrome 0xB8000 - 0xBFFFF ;Video memory color 0xC0000 - 0xC7FFF ;BIOS ROM 0x80000 - 0xEFFFF ;BIOS shadow memory 0xF0000 - 0xFFFFF ;BIOS System
== Interrupt Vector Table ==
INT_NUM | Short Description PM |
---|---|
0x00 | Division by zero |
0x01 | Debugger |
0x02 | NMI |
0x03 | Breakpoint |
0x04 | Overflow |
0x05 | Bounds |
0x06 | Invalid Opcode |
0x07 | Coprocessor not available |
0x08 | Double fault |
0x09 | Coprocessor Segment Overrun (386 or earlier only) |
0x0A | Invalid Task State Segment |
0x0B | Segment not present |
0x0C | Stack Fault |
0x0D | General protection fault |
0x0E | Page fault |
0x0F | reserved |
0x10 | Math Fault |
0x11 | Alignment Check |
0x12 | Machine Check |
0x13 | SIMD Floating-Point Exception |
0x14 | Virtualization Exception |
0x15 | Control Protection Exception |
== BIOS IRQ == https://en.wikipedia.org/wiki/BIOS_interrupt_call