久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > ARM匯編程序中立即數的合法性

ARM匯編程序中立即數的合法性

作者: 時間:2016-11-21 來源:網絡 收藏
ARM匯編中立即數的構成規則:必須是一個8位的二進制數,前面補上24位二進制0,擴展為32位;然后將這個32位的擴展數首尾相連循環偶數位得到。
給定一個立即數,判斷其是否合法可以分三步:首先將給定的立即數寫成32位二進制的形式;然后看能不能用一個8位的二進制數包括所有含1的部分,如不能則非法;最后看這個8位二進制數能不能循環右移偶數位得到給定的立即數,不能數則非法。舉例如下:
0xff=00000000 00000000 00000000 11111111:相當于8位二進制11111111循環右移0位得到,合法;
0x104=00000000 00000000 00000001 00000100:相當于8位二進制01000001循環右移2位得到,合法;
0x101=00000000 00000000 00000001 00000001:包含所有1的部分是100000001,無法用一個8位二進制表示,非法;
0x102=00000000 00000000 00000001 00000010:包含所有1的部分是10000001,但10000001只能循環右移奇數位得到給定的數,非法;
0xfC000002 =11111100 00000000 00000000 00000010:相當于8位二進制10111111循環右移6位得到,合法。
0x8000007E=10000000 00000000 00000000 01111110:包含所有1的部分是11111101,但10000001只能循環右移奇數位得到給定的數,非法。


關鍵詞: ARM匯編程序立即

評論


技術專區

關閉