Introduction à la programmation en assembleur (processeurs 64 bits de la famille 80x86)
1.1.2. Adresse des cases mémoires

Il faut maintenant pouvoir désigner une particule élémentaire précise parmi toutes celles qui sont disponibles. Une première idée est de donner à chacune une adresse unique. Bien entendu, cette adresse doit être elle-même représentée sous la forme d'une suite de bits. Or, comme nous l'avons vu plus haut, pour pouvoir donner X adresses différentes à X bits différents, nous avons besoin d'un espace mémoire de Y bits, tels que X ≤ 2Y.

Exemple

Par exemple, pour pouvoir donner 4 adresses différentes à 4 bits différents, il nous faudra 2 bits pour stocker les adresses.

Explication

Plus généralement, l'espace mémoire nécessaire pour stocker les adresses est inversement proportionnel à la taille minimale des cases mémoires adressables.

Dans la plupart des architectures de processeurs, cette taille minimale sera de 8 bits : chaque octet de la mémoire possède donc une adresse (physique) unique.

  • On aura donc besoin de 1 octet (8 bits) pour pouvoir faire référence à 256 (28) adresses différentes d'octets.

  • Avec 2 octets (16 bits) on pourra accéder à 65536 (216) octets (soit 64 kilo-octets).

  • Avec 4 octets (32 bits) on pourra accéder à 4 giga-octets (1 kilo-octet = 210 octets, 1 mega-octet = 210 kilo-octets et 1 giga-octet = 210 mega-octet).

Les micro-processeurs récents peuvent manipuler directement des adresses sur 64 bits et peuvent donc gérer directement un espace adressable de 264 octets, soit 16 exa-octet (16384 péta-octet, soit environ 17 milliards de giga-octets).