ARM平台的对齐问题:

在ARM中,有ARM和Thumb两种指令。

ARM指令:每执行一条指令,PC的值加4个字节(32bits).一次访问4字节内容,该字节的起始地址必须是4字节对齐的位置上,即地址的低两位为bits[0b00],(为什么?因为第三位就是4的倍数,前两位的值都组合有3,2,1,0其中3,1就不是4的倍数所以就硬性规定低两位为00这样就地址就一定会是四的倍数了)也就是说地址必须是4的倍数。

Thumb指令:每执行一条指令,PC的值加2个字节(16bits).).一次访问2字节内容,该字节的起始地址必须是2字节对齐的位置上,即地址的低两位为bits[0b0],也就是说地址必须是2的倍数。

posted on 2012-06-16 15:51  flczcy  阅读(252)  评论(0)    收藏  举报

导航