>>> 此贴的回复 >> 根据ALU。
>>> 此贴的回复 >> 想深入了解. 学好汇编语言对你帮助非常大.
汇编语言中的,最基本的数据类型有: (1) byte (2)word (3)double word 当然,还有qdword类型(8个字节)等。
这些数据类型由机器架构决定。 也就是说:1字节,2字节,4字节,8字节。每移一位就是2的倍数。
C语言的低级的高级语言,实现上是模拟汇编语言。
char 必须对应 byte , 所以它的类型固定是1个字节。否则就没有相应的类型访问1个字节的数据。 short 也必须对应于 word, 所以它的类型是2个字节。否则没有相应的类型访部2个字节的数据。
至于int 类型: (1)x86架构的机器,基本都是32位。但是初始于实模式下,它是16位的。 (2)16位下,它只能访问16位的地址空间。 (3)所以,16位下,无论是int, long, long long(如果有的话) 都只能访问16位数据。即word (4)在32位保护模式下,可以一次访问32位地址空间。那么,int 对应于double word,long 和 long long都只能一次访问32位数据。long long 模拟访问64位数据。实际上是只能访问32位数据。
(5)当x86-64架构,被初始化于long mode中的64位模式下,long 相对应于64位数据。但也要看操作系统和编译器的支持度。