写过汇编程序的朋友都知道,指令或数据有对齐一说,说要放在地址为4倍数上,可里面的原因何在,按照道理内存是按字节寻址的,对齐不对齐又有什么关系呢,疑问疑问甚是疑问,于是我研究啦一遍计算机存储体系最后得出啦自己的答案:
   虽然内存是按字节寻址,但是高速缓存是采用组相连映像,比如4路组相联,组内4行,而每行就是我们映射的最小单元,一般采用4字节。也就是说如果你没有对齐的话,指令在最坏情况下,需要把内存里的指令所在的前4个字节后4个字节都调入cache,然后才能送入cpu,其效率可想而知。
   注:这只是我自己的答案,有什么想法,交流下呗。