5 réponses
Ouiii voici une réponse :
l'offset est un déplacement relatif à un point de départ, c'est par exemple un index dans un tableau, tout simplement... En fait on dit Offset et non pas index car en assembleur on pars du principe qu'il n'y a pas de structure, et là où un index est indépendant de la taille des éléments, l'offset lui serait la multiplication de la taille des éléments et de l'index, exprimé en octets.
l'offset est un déplacement relatif à un point de départ, c'est par exemple un index dans un tableau, tout simplement... En fait on dit Offset et non pas index car en assembleur on pars du principe qu'il n'y a pas de structure, et là où un index est indépendant de la taille des éléments, l'offset lui serait la multiplication de la taille des éléments et de l'index, exprimé en octets.
merci de ta réponse, mais graphiquement comment pourrait t-on le représenter ?
J'ai entendu parler qu'il fallait s'imaginer une route découpé de segment de 64 ko et quel les segments étaient délimité par des bornes kilométrique, si je puis m'exprimer ainsi...
J'ai entendu parler qu'il fallait s'imaginer une route découpé de segment de 64 ko et quel les segments étaient délimité par des bornes kilométrique, si je puis m'exprimer ainsi...
Hé bien disons que l'analogie n'est pas tout à fait juste, puisque les segments peuvent se chevaucher... et puis on est pas obligés de se représenter des segments de 64ko car c'est une limitation en assembleur 16 bits (64ko Max...), mais en asm 32 bits, les segments permettent chacuns l'accès à 4Go.
Et je suis pas très fan de la représentation routière, qui trouve vite ses limites quand on sait qu'un bloc de mémoire peut être alloué n'importe où, là ou il y a suffisament de place, et n'est donc pas vraiment linéaire...
Pour faire très simple :
Tu alloues un bloc de mémoire de 20 ko,
Tu mets une variable d'un octet à l'offset 0 de ce bloc,
Tu mets une autre variable de 4 octets à l'offset 01, évitant le chevauchement avec la 1ère,
ensuite tu peux en mettre une autre à l'offset 05...
Et si tu n'utilises pas le reste du bloc, c'est du gachis, car il sera employé nulle part ailleurs jusqu'à ce que tu le libères..
Et je suis pas très fan de la représentation routière, qui trouve vite ses limites quand on sait qu'un bloc de mémoire peut être alloué n'importe où, là ou il y a suffisament de place, et n'est donc pas vraiment linéaire...
Pour faire très simple :
Tu alloues un bloc de mémoire de 20 ko,
Tu mets une variable d'un octet à l'offset 0 de ce bloc,
Tu mets une autre variable de 4 octets à l'offset 01, évitant le chevauchement avec la 1ère,
ensuite tu peux en mettre une autre à l'offset 05...
Et si tu n'utilises pas le reste du bloc, c'est du gachis, car il sera employé nulle part ailleurs jusqu'à ce que tu le libères..
Le chêne aussi était un gland, avant d'être un chêne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question