How Does an Intel Processor Boot?
This part is a bit of a mess:<p>&quot;16-bit Real Mode with insruction pointer pointing to address 0xffff.fff0, the reset vector. In this initial mode, the processor has first 12 address lines asserted, so any address looks like 0xfffx.xxxx. This fact combined with how addressing using segment selector (SS) register works, allows the CPU to access instruction at reset vector address 0xffff.fff0&quot;<p>SS is the Stack Segment register. CS is for code.<p>In real mode, the instruction pointer is only 16-bit and can not hold a value in excess of 0xffff.<p>Ignoring those issues, the explanation still doesn&#x27;t match what I&#x27;ve seen before in the documentation. If things have changed, when did that happen? The old explanation:<p>The CS base is set to something like -16, that is with all but the lower 4 bits set. This covers all of physical address space, with any higher bits just being ignored. The instruction pointer is set to 0. The result is execution that starts 16 bytes below the first address that is beyond the end of the physical address space. For example, with 44-bit physical addresses this would be at 0x00000ffffffffff0.