Lorsqu'un PC commence d'abord, il commence à exécuter à l'adresse physique 0xFFFF0. Cette adresse contient une instruction JMP au BIOS. P>
Maintenant pour ma question, je suppose toujours que les adresses physiques sont mappées à la RAM. Si RAM contient initialement des valeurs de déchets, ce qui met exactement l'instruction JMP dans 0xFFFF0? L'instruction JMP est-elle toujours la même ou est-ce différente pour différents BIOS? Est-ce que 0XFFFF0 carte de RAM au BIOS (signifie qu'il est "car mappé")? P>
4 Réponses :
Le TOP 64KB ou donc sont mappés sur le BIOS ROM, pas la RAM. P>
Jetez un coup d'œil à séquence de démarrage PC . Comme Ignacio répondit déjà, il est "mappé dur" au BIOS en lecture seule en lecture seule. P>
En fait, c'est un peu plus complexe que cela. Tout d'abord, sur n'importe quel processeur depuis le 386, il commence à FFFFFFF0 (c'est-à-dire 16 octets après le haut de l'espace d'adresses 32 bits). Jusqu'à ce que le processeur exécute d'abord une instruction de saut éloignée, il fait un mappage spécial pour rendre l'ensemble d'adresses de 32 bits visible même s'il est exécuté en mode réel. Après un saut éloigné, il commence une opération de mode réelle «normale». P>
Dans tous les cas, sur le côté matériel, vous avez normalement des roms (Flash) mappés sur cet emplacement, donc lorsqu'il commence à exécuter, il exécute le code dans ROM. Ce qui est exécuté pour commencer, ce n'est pas vraiment du BIOS, ce n'est que du code pour décompresser le BIOS réel de la ROM dans la RAM, puis reproduire la RAM à la gamme d'adresses BIOS. P>
Est-ce un éclair ou une EEPROM qui est mappé sur le BIOS ROM?
@RANSH: Flash est un de EEPROM, donc ce n'est pas vraiment un / ou une question de question. Au moins dans la plupart des cas typiques, c'est flash cependant.
Consultez ce manuel Intel:
aller à la page 9-6, et les pages suivantes, tout décrit la première Mode de démarrage de la CPU. La première instruction récupérée est de FFFFFF00 (qui a câblé au BIOS ROM): p> et en souvenir à ce stade, il est toujours en restomode: P> The CS register has two parts: the visible segment selector part and the
hidden base address part. In real-address mode, the base address is normally
formed by shifting the 16-bit segment selector value 4 bits to the left to produce a
20-bit base address. However, during a hardware reset, the segment selector in the
CS register is loaded with F000H and the base address is loaded with FFFF0000H. The
starting address is thus formed by adding the base address to the value in the EIP
register (that is, FFFF0000 + FFF0H = FFFFFFF0H).
FFFF0000-FFFFFFFFF CODE> et
000F0000-000FFFFF CODE> Carte vers la même ROM?
désolé je ne comprends pas votre question. pourquoi as-tu dis cela?
alors ils font la carte vers la même rom