ARM處理器指令立即尋址的限制
給定一個立即數,判斷其是否合法可以分三步:首先將給定的立即數寫成32位二進制的形式;然后看能不能用一個8位的二進制數包括所有含1的部分,如不能則非法;最后看這個8位二進制數能不能循環(huán)右移偶數位得到給定的立即數,不能數則非法。
本文引用地址:http://www.ex-cimer.com/article/201611/319517.htm0xff=00000000
0x104=00000000
0x101=00000000
0x102=00000000
0xfC000002
0x8000007E=10000000
總結:第一,判斷一個數是否符合8位位圖的原則,首先看這個數轉換成二進制后1的個數是否不超過8個,如果不超過8個,再看這n個1(n<=8)是否能同時放到8個二進制位中,如果可以放進去,再看這八個二進制位是否可以循環(huán)右移偶數位得到起初被判斷的那個數值,如果可以,則此數值即為符合8位位圖原理,否則,不符合。第二,用12位的編碼來表示一個任意的32位數是不可能的,只能通過循環(huán)右移八位二進制數偶數位來得到一部分32位數,其余的無法表示的32位數,只有通過其它途徑獲得了,比如0xffffff00,可以通過0x000000ff按位取反得到。
評論