|
Segments
L'architecture des forces des processeurs x86 à l'utilisation des segments de mémoire de contrôler l'information, la taille de ces segments est de 64kb.
La raison d'être de ces segments est que, considérant que la taille maximum d'un nombre que le processeur peut contrôler est indiquée par un mot de 16 bits ou registre, ce ne serait pas possible pour accéder à plus de 65536 localités de mémoire utilisant seulement un de ces registres, mais maintenant, si la mémoire est divisée en groupes ou les segments, chacune de 65536 localités, et nous emploient une adresse sur un registre exclusif pour trouver chaque segment, et alors nous faisons chaque discours d'une fente spécifique avec deux registres, et il est possible que nous accèdent à une quantité de 4294967296 bytes de mémoire.
Afin l'assembleur puisse contrôler les données, il soit nécessaire que chaque information ou instruction soit trouvée dans le secteur qui correspond à ses segments respectifs. L'assembleur accède à cette information tenant compte de la localisation du segment, donnée par le DS, l'es, les solides solubles et les registres et l'intérieur de CS le registre l'adresse de l'information indiquée. Il est pour cette raison qui quand nous créons un programme en utilisant la correction sur chaque ligne que nous assemblons, n'importe quoi de pareil apparaît :
1CB0:0102 MOV AX,BX
Là où le premier nombre, 1CB0, correspond au segment de mémoire étant employé, le second se rapporte à l'adresse à l'intérieur de ce segment, et les instructions qui seront stockées de cette adresse suivent.
L'assembleur ajuste la taille des segments prenant comme une base le nombre de bytes que chaque instruction assemblée a besoin, puisque ce serait un gaspillage de mémoire pour employer les segments entiers. Par exemple, si un programme a besoin seulement de 10kb pour stocker des données, le segment de données sera seulement de 10kb et pas le 64kb qu'il peut manipuler.
|
|