字和字长
64位系统和32位系统中64和32的含义:
64和32指的是CPU中的寄存器(通用)的字长,字长就是一个字的位数。这里说的字的含义是:处理器进行数据处理时,一次存取,加工,和传送的数据长度。
系统中的一个字的大小与CPU寄存器的大小有关,因此,16位,32位系统与64位系统中的字不一样:
- 16位系统:一个字 = 2Byte
- 32位系统:一个字 = 4Byte
- 64位系统:一个字 = 8Byte
汇编中的字,双字和四字
汇编中的字,双字,四字其实指的是汇编指令的后缀,与处理器概念中的字和字长是不一样的概念。
汇编中的字,双字和四字是数据格式,见下表;
C声明 | 数据类型 | 汇编代码后缀 | 大小(字节) |
---|---|---|---|
char | 字节 | b | 1 |
short | 字 | w | 2 |
int | 双字 | l | 4 |
long | 四字 | q | 8 |
char * | 四字 | q | 8 |
float | 单精度 | s | 4 |
double | 双精度 | l | 8 |
由于是从16位体系结构扩展成32位的,Intel用术语“字(word)”表示16位数据类型。因此,称32位数为"双字(double word)",称64位数为"四字(quad word)"。