From acc01761e007c426c1f9ed0ee54662a63d01b803 Mon Sep 17 00:00:00 2001 From: Mathieu Maret Date: Sat, 28 Jan 2017 22:46:50 +0100 Subject: [PATCH] Mbr doing nothing --- Readme.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ mbr.asm | 4 ++++ 2 files changed, 52 insertions(+) create mode 100644 Readme.md create mode 100644 mbr.asm diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..c262a65 --- /dev/null +++ b/Readme.md @@ -0,0 +1,48 @@ +== 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 diff --git a/mbr.asm b/mbr.asm new file mode 100644 index 0000000..57f5a12 --- /dev/null +++ b/mbr.asm @@ -0,0 +1,4 @@ +bits 16 ; mode 16bits +org 0x7C00 ; mbr ae loaded at 0x7C00 +times 510 - ($ - $$) db 0 ; fill up to 510 with 0 +dw 0xAA55 ; MBR magic number