程序计数器PC的bits[1:0]为什么是0?
实际上,根据处理器所处状态是ARM状态,还是Thumb状态,分两种情况:
-
对于ARM状态
因为ARM指令集是字对齐的(4byte),当处理器处在ARM状态下时,指令的地址也应该是形如0x0, 0x4, 0x8, 0xC... 这样4的倍数。而PC中存放的是下一条指令的地址,所以PC的内容也必须是4的倍数,从而PC[1:0]必须是0。 -
对于Thumb状态
类似于处于ARM状态,Thumb指令集是半字对齐的(2byte),处理器处于Thumb状态时,地址是2的倍数。因此PC[0]必须是0。