Autre methode pour adresser la ram???????????

klaodio81 Messages postés 294 Statut Membre -  
klaodio81 Messages postés 294 Statut Membre -
Bonjour,

je débute en assembleur, et je suis entonné de la "technique" d'adressage de la mémoire dans ce langage;les fameux offset et segments.
ma question est; la machine adresse-t-elle réellement de cette façon (offset/segment) sa memoire ou est-ce simplement un subterfuge ou astuce pour faciliter la tache aux programmeurs (ce qui veut dire que la machine possede un interpreteur du mode offset:segment à un autre mode d'adressage "machine" exploitable directement par le couple cpu-ram)?

A voir également:

2 réponses

nicocorico
 
hé bien en fait, historiquement les segments ont été implémentés pour utiliser la mémoire au delà de 64 ko, ce qui n'était pas prévu sur les premiers processeurs (!), et par la suite ils servirent à protéger les blocs de mémoire. Le processeur possède une table qui est indexée par les pointeurs de segments, et chaque entrée décrit les limites d'utilisation et la fourchette valide de l'offset que l'on peut associer... ainsi, un segment peut représenter un bloc de petite taille sans permettre l'accès au reste du bloc couvert par les valeurs possibles de l'offset; mais surtout, ce problème est important en assembleur 16 bits, permettant des adressages de type ds:[BX] couvrant 64ko max et rendant très contraignant l'usage de vastes blocs. En assembleur 32 bits, les segments restent fixes pour l'ensemble du programme et permettent un adressage du type ds:[EBX] couvrant 4go et autorisant l'allocation de très gros blocs ! Code, pile et données ont leur segment unique dans chaque application et on n'utilise plus explicitement les segments... perso j'utilise l'assembleur intégré 32 bits de Deplhi, très souple et pratique. voilà et bon courage !
0
klaodio81 Messages postés 294 Statut Membre 20
 
ok merci je vais lire tt ca.
0