当前位置: 技术问答>linux和unix
在ARM文章经常看到[1:0]和[31:2]这是什么意思啊.
来源: 互联网 发布时间:2016-11-10
本文导语: 比如有这样一句话: 寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC [1:0]为0,是什么意思呢(猜测:是32位中的0~1位应该设置为0吗???) [31:2]是什么意思呢 | PC是32位的(31:...
比如有这样一句话:
寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC
[1:0]为0,是什么意思呢(猜测:是32位中的0~1位应该设置为0吗???)
[31:2]是什么意思呢
寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC
[1:0]为0,是什么意思呢(猜测:是32位中的0~1位应该设置为0吗???)
[31:2]是什么意思呢
|
PC是32位的(31:0)。ARM状态下,指令是32位的,指令地址都是4字节对齐,所以PC值肯定是4的倍数,所以最低两位(位[1:0])肯定为0,前面的30位位[31:2]用于保存PC
如果是thumb状态,指令是16位的,指令地址是2字节对齐。
如果是thumb状态,指令是16位的,指令地址是2字节对齐。
|
如果一个十进制数是100(10的平方)的倍数,显然他(十进制)的最低两位都是0。
同样的
如果一个二进制数是4(2的平方)的倍数,那么他(二进制)的最低两位都是0。
二进制、十六进制玩多了,这些就很自然了。
同样的
如果一个二进制数是4(2的平方)的倍数,那么他(二进制)的最低两位都是0。
二进制、十六进制玩多了,这些就很自然了。