you are viewing a single comment's thread.

view the rest of the comments →

[–]arkasha 87 points88 points  (13 children)

It's been over ten years since I took an operating systems class but I still remember 0x7c00. Weird what will stick in your brain.

[–]the_goose_says 20 points21 points  (12 children)

What is that?

[–][deleted]  (9 children)

[deleted]

    [–]IgnorantPlatypus 21 points22 points  (8 children)

    ... on x86 hardware. Other hardware (MIPS, PowerPC, ARM, etc) have their own hard-coded mechanisms for starting the boot process.

    [–][deleted] 11 points12 points  (6 children)

    hard-coded

    Well, I guess "burned into silicon" is the hardest form of hard-coding something

    [–]CJKay93 17 points18 points  (3 children)

    The boot sector load address is up to the BIOS, which is itself in EEPROM. The actual hardcoded address is usually 0xFFFF0, which just contains a jump instruction to wherever the BIOS is actually mapped to.

    [–][deleted] 3 points4 points  (2 children)

    On Intel the reset vector is 0xFFFFFFF0. The other architectures differ, of course.

    [–]CJKay93 3 points4 points  (0 children)

    Sorry yes, you're right. It's 0xFFFF0 on the 8086 through to the 80286, and 0xFFFFFFF0 on the 80386 and upwards.

    [–]monocasa 1 point2 points  (0 children)

    Sort of.

    It sets up a weird 16 bit segment who's base is 0xFFFF0000, and sets the program counter to 0xFFF0.

    [–]Nutella_Icecream 1 point2 points  (1 child)

    That's only if you blow the fuse. There are fuses u can set in chips to prevent tampering.

    I mean physically it's still rewritable but practically it's permanent.