程序的机器级表示 -- 数据格式

《深入理解计算机系统(第三版)》阅读随笔

在 Intel CPU 体系中,其最早的 8086 是 16 位机,Intel 用术语“字”表示 16 位数据类型,后来发展到 32 位机时,称 32 位数据类型为“双字”,直到现在的 64 位机,称 64 位数为“四字”。C 语言数据类型在 x86-64 机器中的大小对应关系如下图所示:

C 声明 Intel 数据类型 汇编代码后缀 字节大小
char 字节 b 1
short w 2
int 双字 l 4
long 四字 q 8
char* 四字 q 8
float 单精度 s 4
double 双精度 l 8

其中汇编代码后缀与汇编代码指令结合使用,例如移动双字操作就是 movl,其中四字操作就是 movq。整形双字后缀和浮点型双精度后缀虽然都是 l,但是由于它们属于不同的指令集,因此命名不会冲突。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章