mbr_asm/Readme.md

1.4 KiB

== 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