新聞中心

ARM 匯編中的立即數(shù)

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏
ARM 匯編中對(duì)匯編指令被編碼成 32bit 的機(jī)器碼,其中對(duì)于立即數(shù)尋址的指令,其機(jī)器碼構(gòu)成如下:

31 28 | 27 26 25 | 24 21 | 20 | 19 16 | 15 12 | 11 8 | 7 0 |

本文引用地址:http://m.butianyuan.cn/article/201611/317228.htm

cond | 0 0 1 | opcode | S | Rn | Rd | rotate_imm | immed_8 |

規(guī)定 0~11 位表示 shift operand,表示立即數(shù)時(shí), #immediate 由這兩部分構(gòu)成:

immediate = immed_8 >> (rotate_imm*2)

也就是說(shuō)只有滿足上述構(gòu)成條件的立即數(shù)才是合法的操作數(shù),那么以下立即數(shù)

0x101,0x102,0xFF1,0xFF04,0xFF003,0xFFFFFFFF,0xF000001F

都是非法的!!編譯器編譯的時(shí)候會(huì)出現(xiàn)如下警告

error A0092: no immediate rotate operand can be created

看來(lái)想實(shí)現(xiàn)上面的一個(gè)立即數(shù),只能通過(guò)好幾條指令來(lái)實(shí)現(xiàn)了!



關(guān)鍵詞: ARM匯編立即

評(píng)論


技術(shù)專區(qū)

關(guān)閉