Reset vector

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The reset vector is the default location a central processing unit will go to find the first instruction it will execute after a reset. The reset vector is a pointer or address, where the CPU should always begin as soon as it is able to execute instructions.

  • The reset vector for the 8086 processor is at address FFFF0h (16 bytes below 1 MB). The value of the CS register at reset is FFFFh and the value of the IP register at reset is 0000h to form the segmented address FFFFh:0000h, which maps to physical address FFFF0h.
  • The reset vector for the 80286 processor is at address 00FFFF0h (16 bytes below 1 MB). The value of the CS register at reset is F000h and the value of the IP register at reset is FFF0h to form the segmented address F000h:FFF0h, which maps to physical address 00FFFF0h in real mode.[1] This was changed to allow sufficient space to switch to protected mode without modifying the CS register.[2]
  • The reset vector for the 80386 and later x86 processors is physical linear address FFFFFFF0h. The value of the selector portion of the CS register at reset is F000h, the value of the base portion of the CS register is FFFF0000h, and the value of the IP register at reset is FFF0h to form the segmented address FFFFF000h:FFF0h in real mode.[3][4]

References[edit]

  1. ^ "iAPX 286 Programmer's Reference Manual". Intel. 1983. Section 5.3 SYSTEM INITIALIZATION, p. 5-7. Retrieved November 3, 2013. Since the CS register contains F000 (thus specifying a code segment starting at physical address F0000) and the instruction pointer contains FFF0, the processor will execute its first instruction at physical address FFFF0H. 
  2. ^ "iAPX 286 Programmer's Reference Manual". Intel. 1983. Appendix D, iAPX 86/88 Software Compatibility Considerations, p. D-2. Retrieved November 3, 2013. After reset, CS:IP = F000:FFF0 on the iAPX 286. This change was made to allow sufficient code space to enter protected mode without· reloading CS. 
  3. ^ "80386 Programmer's Reference Manual". Intel. 1990. Section 10.2.3 First Instruction, p. 10-4. Retrieved November 3, 2013. Execution begins with the instruction addressed by the initial contents of the CS and IP registers. To allow the initialization software to be placed in a ROM at the top of the address space, the high 12 bits of addresses issued for the code segment are set, until the first instruction which loads the CS register, such as a far jump or call. As a result, instruction fetching begins from address 0FFFFFFF0H. 
  4. ^ "Intel® 64 and IA-32 Architectures Software Developer’s Manual". Intel. May 2012. Section 9.1.4 First Instruction Executed, p. 2611. Retrieved August 23, 2012. The first instruction that is fetched and executed following a hardware reset is located at physical address FFFFFFF0h. This address is 16 bytes below the processor’s uppermost physical address. The EPROM containing the software-initialization code must be located at this address. 

See also[edit]