cpu怎样读取数据?
假设定义了一个4字节整型变量,按其存储地址的不同可能有下列几种读取方式:
1.如果变量在自然对齐位置上,则只要一次就可以取出数据。
2.如果首地址为0x00000002,则CPU如果取它的值的话需要访问两次内存,第一次取从0x00000002-0x00000003的一个short,第二次取从0x00000004-0x00000005的一个short然后组合得到所要的数据。
3.如果变量在0x00000003地址上的话则要访问三次内存,第一次为char,第二次为short,第三次为char,然后组合得到整型数据。
那么请问cpu(i386)到底以什么样的方式读取数据呢?为什么有时候能读取4字节,有时候却只能2字节或1字节?