编程语言中的数据格式

发布于 2019-06-27 21:03:54 阅读 169

由于CPU是从16位体系结构扩展成32位的,Intel用术语字(word)表示16位数据类型,因此称32位数为双字(double words),称64位数为四字(quad words)

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

大多数GCC生成的汇编代码指令都有一个字符的后缀,表明操作数的大小,例如数据传送指令有四个变种:movb(传送字节)movw(传送字)movl(传送双字)movq(传送四字)。后缀l用来表示双字,因为32位数被看成是长字(long word)

注意:汇编代码也是用l来表示4字节整数和8字节双精度浮点数,这不会产生歧义,因为浮点数使用的是一组完全不同的指令和寄存器。