Bonjour,
Comment expliquer:
(source Wikipédia)* le 80286 peut gérer 16 Mo de mémoire physique et 1 Go de mémoire virtuelle soit 16 384 segments de 64 Ko.
* le 80386 4 Go de mémoire physique, 64 To de mémoire virtuelle, soit 16 384 segments de 4 Go.
Par ex, pourquoi seulement 1 Go de mémoir virtuelle pour l'un et 64 To pour l'autre ?
En fait, je comprends la technique d'adressage par segment de l'Intel 8086 car il a une largeur de bus d'adresse 20bits, et le processeur a donc à traduire le couple segment(16bit):offset(16bit) en 20 bits pour l'adressage réel dans la RAM
Actuellement, on a 32 bits de largeur de bus donc 4 Go de case mémoire adressable.
Je projette alors de créer un simple programme Assembleur (j'utilise TASM) ou C (Turbo C) tournant sous DOS pour lire et afficher les contenus de ma RAM de 1 Go. Est-ce faisable? J'utilise DOS pour s'affranchir des limitations et l'adressage virtuel en multitâche que ce soit Linux ou Windows.
Or, avec TASM, je ne peux qu'utiliser le vieil adressage segment:offset de 16 bits. Est-ce que j'ai le mauvais compilateur ou quoi ??
Curiosité: existe-t-il une version Linux de DOS c'est à dire où on peut aussi lancer un programme qui adresse directement les adresses physiques au lieu des adresses virtuelles dans les OS multitâches
Partager