Coding With Fun
Home Docker Django Node.js Articles Python pip guide FAQ Policy

What's the difference between x86 32 and x86 64 addressing?


Asked by Ariyah Brock on Dec 15, 2021 FAQ



The addressing mode documented above is almost identical to its historical x86_32 equivalent — its biggest changes are allowing 64-bit GPRs and (sometimes) 64-bit displacements. Where x86_64 really diverges is in its addition of a brand new addressing mode, best known as “RIP-relative” addressing. Why is it called “RIP-relative”?
Similarly,
When 64 bit processors compatible with the x86 architecture were introduced, they were referred to as x86-64. x86-32 (and x86-16) were used for the 32 (and 16) bit versions. This was eventually shortened to x64 for 64 bit and x86 alone refers to a 32 bit processor.
Thereof, In the mid 1990s, it was obvious that the 32-bit address space of the x86 architecture was limiting its performance in applications requiring large data sets. A 32-bit address space would allow the processor to directly address only 4 GB of data, a size surpassed by applications such as video processing and database engines.
Moreover,
It usually refers to x86 for 32 bit OS and x64 for system with 64 bit. Technically x86 simply refers to a family of processors and the instruction set they all use. It doesn't actually say anything specific about data sizes.
And,
What is x64? Similar to the x86, the x64 is also a family of instruction set architectures (ISA) for computer processors. However, x64 refers to a 64-bit CPU and operating system instead of the 32-bit system which the x86 stands for.