Okay. Let’s clear this up once and for all, you nerds.
’32-bit’ and ’64-bit’ are adjectives that describe computer programs that target a specific version of the x86 instruction set architecture.
Okay, some definitions, I understand.
- An instruction set architecture is a set of commands (opcodes, if you will) that tell specifically what thing a CPU chip should do.
- x86 is a type of ISA. It is designed by Intel and AMD.
ISAs exists so that even if, for example, Intel and AMD manufacture different types of CPU chips, the programs that target the specific ISA they support would still be able to run in all those chips.
- x86 is a family in general of ISAs that are supported by a number of CPU chips.
- x86-64 is a specific version of x86 that is supported by 64-bit CPU chips.
64-bit here means that the memory is made available to consumers (programs) in blocks of 64 bits. That is, when you store an integer in a 64-bit chip, it has to be 64 bits long. The same analogy applies with 32-bit chips and 16-bit chips, which you might not have heard of, is a thing.
Programming nerds, discussion ends here. English nerds, the next section is for you.
Grammar and spelling points regarding x86 architectures
- “64-bit” and “32-bit” are compound adjectives, so they should always have a hyphen in them. “Bit” should also be singular. All of these are wrong, please don’t do these:
- “my 64 bit program”
- “my 64bit program”
- “Windows XP 64 bits”
- x86 is commonly used together with non-64-bit applications. x86-64 or, equivalently, amd64, is used together with 64-bit applications. ‘x64′ is just a thing popularized by Microsoft so they would look cool: they won’t. Please stop referring to x86-64 as such.
- You will see applications distributed in either x86, amd64, or ia64. “ia64” is used to refer to the 64-bit Itanium (that is, not x86) ISA.