Différence entre long et court à sauter (x86)
J'ai lu que court sauts seront utilisés lors de l' la relative saut est moins de 124 adresse de, et de longs sauts doivent être utilisés autrement.
Quelle est la différence en termes de opérations effectuées dans le CPU /performance entre les deux types de sauts sur x86?
Et vous ne pouvez pas trouver toute la documentation sur les différentes consignes pour ce très bien documenté CPU?
Les manuels Intel peut être trouvé ici (PDF avertissement). Recherchez 3-440 dans le Vol. 2A, il décrit JMP dans le détail. De près et de loin les sauts sont couverts dans le même document. La différence de performance, vous pouvez mesurer, ou reportez-vous aux efforts de personnes qui ont, par exemple, Agner le Brouillard de la page.
Je ne pouvais vraiment pas. Merci Michael. Puisque je ne pouvais pas trouver la documetation, je vous serais reconnaissant si vous pouviez dire où vous avez regardé pour lui afin que, dans les derniers cas, je serais en mesure de trouver moi-même. Je veux dire surtout comment savez-vous que la réponse s'y trouve
Court sauts économiser de l'instruction de la longueur.
Les manuels Intel peut être trouvé ici (PDF avertissement). Recherchez 3-440 dans le Vol. 2A, il décrit JMP dans le détail. De près et de loin les sauts sont couverts dans le même document. La différence de performance, vous pouvez mesurer, ou reportez-vous aux efforts de personnes qui ont, par exemple, Agner le Brouillard de la page.
Je ne pouvais vraiment pas. Merci Michael. Puisque je ne pouvais pas trouver la documetation, je vous serais reconnaissant si vous pouviez dire où vous avez regardé pour lui afin que, dans les derniers cas, je serais en mesure de trouver moi-même. Je veux dire surtout comment savez-vous que la réponse s'y trouve
Court sauts économiser de l'instruction de la longueur.
OriginalL'auteur nadavge | 2015-03-28
Vous devez vous connecter pour publier un commentaire.
Il ya en fait trois types de
JMP
instructions; bref, de près et de loin (de long).Un court
JMP
est la relativeJMP
que vous consultez. Il est codé sur deux octets; laJMP
et le nombre d'octets +/- par rapport à la période actuelle.Un près de saut, vous pouvez sauter dans le courant de l' "segment" (à l'aide de mode réel) ou dans la mémoire actuellement sélectionné dans la zone de la CS sélecteur.
Une longue ou de Loin
JMP
comprend en outre un sélecteur (ou segment en mode réel)Vous pouvez consulter les horaires pour vous-même. La plus grande différence est liée à la durée causés par les différents nombres d'octets à lire pour accomplir la
JMP
.L'adresse est composée d'un sélecteur et un offset. Comme dans CS:1234. CS est utilisé pour définir un sélecteur hors de la GDT ou LDT quand en mode protégé. En général quelque chose d'assez petit, surtout quand on le compare à la vraie mode de segmentation de la mémoire, car il est tout simplement en sélectionnant une entrée de la table plutôt que de définir une adresse de mémoire. L'adresse de la mémoire est définie dans la GDT/LDT.
Je dois ajouter, elle regarde la même chose si vous êtes en mode réel ou en mode protégé... c'est les valeurs réelles qui sont différentes sous le capot et le travail qui est fait avant de configurer le GDT (qui n'est pas nécessaire en mode réel, puisque vous êtes à l'aide de la mémoire segmentée)
OriginalL'auteur David Hoelzer