2010-06-20 7 views
1

Hé les gars, Im nouvelle à l'architecture 8086 et n'a pas été en mesure de trouver beaucoup sur Google en rapport avec les éléments suivants:Flags sur débordement de pointeur d'instruction en 8086/8088

Sur le i8086 ou i8088 (c.-à-16bit, segmentée adressage) que se passe-t-il si une instruction se produit avec le pointeur d'instruction (compteur de programme) à 0xFFFF? Je suppose que la CPU incrémente l'IP et qu'elle déborde et devient 0x0 alors que le registre CS reste inchangé.

Toutefois, si cela se produit ne les drapeaux se préparent (comme le bit de débordement des drapeaux registre?)

Merci,

Répondre

1

Les drapeaux architecturaux sont modifiés uniquement à la suite de l'exécution d'une instruction, jamais à la suite d'une extraction. Un débordement comme celui que vous décrivez résulterait en un bouclage mais cela ne serait reflété nulle part à l'exception de l'adresse IP actuelle.

+0

Merci pour la réponse, donc fondamentalement le CPU continuerait simplement l'exécution à l'insu à CS: 0x0? –

+0

Donc, juste pour clarifier cette réponse, la propriété intellectuelle serait tout simplement enrouler autour et aucun autre événement ne se produirait. Merci. –

+0

@Steve, c'est vrai. Je voulais répondre à votre commentaire bug a répondu à la place de Mark ... le péril de répondre quand je suis trop fatigué :-) –

0

Je ne suis pas sûr qu'il est censé avoir un effet spécial aux drapeaux, mais cela devrait déclencher une réinitialisation. IP serait incrémenté à 0000: et CS resterait comme FFFF, ce que je réinitialiserais le CS: IP à FFFF: 0000 qui est censé être l'instruction de démarrage pour le chargeur bootstrap.

+0

Si le CS n'est pas FFFF (de sorte que l'instruction de bouclage n'est pas le vecteur de réinitialisation) fait un déclencheur de réinitialisation? Ou voulez-vous dire qu'il va effectivement réinitialiser est ce cas spécifique (CS = FFFFh, ip = 0). Merci –

+0

Il n'y a aucune réinitialisation ou tout autre événement. Il ne réinitialisera même pas IP comme prévu. Si vous étiez à 0xffff et que vous essayiez d'aller chercher 5 octets, vous l'enrouleriez à 0x4 sur l'instruction suivante. –

Questions connexes