ARM 匯編中的立即數
31 28 | 27 26 25 | 24 21 | 20 | 19 16 | 15 12 | 11 8 | 7 0 |
本文引用地址:http://dyxdggzs.com/article/201611/317228.htmcond | 0 0 1 | opcode | S | Rn | Rd | rotate_imm | immed_8 |
規定 0~11 位表示 shift operand,表示立即數時(shí), #immediate 由這兩部分構成:
immediate = immed_8 >> (rotate_imm*2)
也就是說(shuō)只有滿(mǎn)足上述構成條件的立即數才是合法的操作數,那么以下立即數
0x101,0x102,0xFF1,0xFF04,0xFF003,0xFFFFFFFF,0xF000001F
都是非法的??!編譯器編譯的時(shí)候會(huì )出現如下警告
error A0092: no immediate rotate operand can be created
看來(lái)想實(shí)現上面的一個(gè)立即數,只能通過(guò)好幾條指令來(lái)實(shí)現了!
評論