En mode protégé, les registres de segments contiennent un index
dans une table appelée GDT, c'est dans cette table que sont définis
les segments (adresse de base, taille, attributs, ...).
Linux sur i386 tourne en mode protégé et utilise une configuration
des registres de segments (CS, DS, ES, ...) en mode "flat", c'est-à-dire
couvrant tout l'espace d'adressage de 0 à 4 Go.
Donc, en pratique, il n'y a pas à en tenir compte: tu veux accéder
à la zone mémoire 0xe0001234 et mettre le contenu dans le registre
EBX ? Tu fais: mov ebx, [0xe0001234]. Implicitement, c'est DS qui est
utilisé. Sous Linux/x86, je crois me rappeler que DS=ES=FS=GS.
Par contre, concrètement parlant, qu'est-ce que tu veux faire
exactement en allant taper dans la zone mémoire du pilote de ta
carte réseau ?
# Mode protégé et adressage "flat"
Posté par galactikboulay . En réponse au message accès à la mémoire. Évalué à 3.
dans une table appelée GDT, c'est dans cette table que sont définis
les segments (adresse de base, taille, attributs, ...).
Linux sur i386 tourne en mode protégé et utilise une configuration
des registres de segments (CS, DS, ES, ...) en mode "flat", c'est-à-dire
couvrant tout l'espace d'adressage de 0 à 4 Go.
Donc, en pratique, il n'y a pas à en tenir compte: tu veux accéder
à la zone mémoire 0xe0001234 et mettre le contenu dans le registre
EBX ? Tu fais: mov ebx, [0xe0001234]. Implicitement, c'est DS qui est
utilisé. Sous Linux/x86, je crois me rappeler que DS=ES=FS=GS.
Par contre, concrètement parlant, qu'est-ce que tu veux faire
exactement en allant taper dans la zone mémoire du pilote de ta
carte réseau ?