110 likes | 257 Views
Système d’exploitation : Assembleur. Semaine 03 Gestion de la mémoire. Gestion de la mémoire : Espace adressable. bus 20 bits (8088) : 2 20 emplacements adressables 1.048.576 emplacements d’un octet adressables 1 Mo bus 32 bits (80386) : 2 32 emplacements adressables
E N D
Système d’exploitation : Assembleur Semaine 03 Gestion de la mémoire
Gestion de la mémoire : Espace adressable • bus 20 bits (8088) : • 220 emplacements adressables • 1.048.576 emplacements d’un octet adressables • 1 Mo • bus 32 bits (80386) : • 232 emplacements adressables • 4.294.967.296 emplacements d’un octet adressables • 4 Go
Gestion de la mémoire : Espace adressable Carte de la mémoire adressable sous 1Mo
Gestion de la mémoire (1/7) • Problème du 8088 : • La taille des registres est de 16 bits • Or l’adressage se fait sur 20 bits… • La solution : • SEGMENTATION : passage d’une adresse de 16 bits à une adresse de 20 bits
Gestion de la mémoire (2/7) • Notion d’adresse effective • C’est l’offset (décalage par rapport au début du segment) • C’est donc la distance qui sépare l’information à atteindre du début du segment • Notion d’adresse logique • L’adresse sous le format xxxx:yyyy • Où xxxx est le numéro de segment • Et yyyy est l’offset dans ce segment • Notion d’adresse physique • C’est le résultat du calcul RegSeg0000b + offset • C’est une adresse sur 20 bits
Gestion de la mémoire (4/7)Exemples: • Que signifie : CS:IP avec CS= 0ABC et IP=1234 ? • IP=362A CS=6ED1. Adresse physique ? ES=1234 DI=5678. Adresse physique ? SS=4321 BP=BCDE. Adresse physique ? • CS=89B2 adresse physique=8AE43 IP=? • Adresse physique=A2B4C IP=? CS=? • Adresse physique=ABCDE DS=? SI=?
Gestion de la mémoire (5/7)Exemples: • Soit une donnée A se trouvant dans le segment de données (12C4) à l’adresse effective 7AF2 Où se situe la donnée en mémoire ? • Si CS=17A8 DS=4F8C SS=205E ES=3B60, • A quelles adresses physiques correspondent ES:3B60 DS:3B60 SS:64F2 CS:0000 • A quelle adresse physique se trouve l’instruction dont l’adresse effective est 5AF8?
FFFFFh Zone disponible à l’utilisateur 00000h Largeur : 1 octet Gestion de la mémoire (6/7) • 4 zones de 64 Ko : CS, DS, ES, SS • Dans la zone CS:0000 à CS:FFFF se trouve le code source du programme • Dans la zone DS:0000 à DS:FFFF se trouvent les données du programme • Dans la zone ES:0000 à ES:FFFF se trouvent les données supplémentaires • Dans la zone SS:0000 à SS:FFFF se trouve la pile de sauvegarde • En mettant bout à bout ces 4 segments, on ne pourrait adresser que 256Ko. • Dans ce cours d’introduction, nous ne dépasserons jamais 64Ko de mémoire pour le code, les données, les données supplémentaires et la pile (c.à.d. plus de 10000 lignes!!!) • Les 4 registres de segment contiendront donc toujours la même adresse
Rangement des données en mémoire Attention : Octet de poids le plus fort à la plus forte adresse. Si on va lire à 012A6 : FF03 et pas 03FF ……. 012A9 012A8 012A7 012A6 012A5 012A4 F0 21 FF 03 A2 00 ……. Gestion de la mémoire (7/7)