Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Anomine houlà il ne faut pas confondre architecture x86-64 de ce qui est réellement implémenté pour cette architecture.
- Certes le I7 ne sait gérer que 48bit en virtuel qui transforme en adressage de 40bit.
- Mais l'instruction prend bien 64bit et il y a 17bit qui doivent être identique.[1,2,3]
- Lorsque tu fait un chargement "MOV" [3] t'as bien un pointeur de 64bit qui n'est pas dans la version 32bit [4].
- Par contre le bus de données du I7 est de 128bits [5]
- Le bus de donné de la DDR3 est de 64bit ainsi que la DDR2 que l'on utilisait avec des processeur 32bit.
- Pour le système d'exploitation le pointeur fait bien 64bits.
- Pour ceux qui veulent essayer :
- `#include <stdio.h>
- int main(){
- printf("%ld bits\n",sizeof(int*)*8);
- return 0;
- }`
- Ce programme répond.
- "64 bits" sur un linux en 64bits
- "32 bits" sur un linux en 32bits
- [1]http://en.wikipedia.org/wiki/X86-64#Virtual_address_space_details
- [2]http://www.linuxquestions.org/questions/linux-hardware-18/address-sizes-in-cpuinfo-757456/
- [3]http://ref.x86asm.net/coder64.html
- [4]http://ref.x86asm.net/coder32.html
- [5]http://upload.wikimedia.org/wikipedia/commons/6/64/Intel_Nehalem_arch.svg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement