日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ARM MOV指令对立即数的要求

發布時間:2025/3/15 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM MOV指令对立即数的要求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MOV R1,#9
以上指令表示把9傳送到寄存器R1中。

需要注意的是,這里的立即數是有要求的,不是說任何一個立即數都可以。

要求是:立即數可以由一個8位的常數循環右移偶數位得到。其中循環右移的位數由一個4位二進制的兩倍表示。

如果立即數記作immediate,8位常數記作immed_8,4位的循環右移值記作rotate_imm,則
immediate=immed_8循環右移(2*rotate_imm)

這樣并不是每一個32位的常數都是合法的立即數,只有能通過上面的構造方法得到的才是合法的立即數。

比如,0x101,0x102,0xFFF;

另外,一個合法的立即數,可能有多種編碼方法。如0x3F0,它可以采用下面兩種編碼方法:
immed_8=0x3F,rotate_imm=0xE
(0x3F循環右移28位,即0x3F左移4位得到0x3F0)

或者
immed_8=0xFC,rotate_imm=0xF
(0xFC循環右移30位,即0xFC左移2位得到0x3F0)

對于不合法的立即數,比如要把0xFFF傳送到R1中,雖然不能用MOV指令,但是可以用LDR偽指令,用法是
LDR R1,=0xFFF

總結

以上是生活随笔為你收集整理的ARM MOV指令对立即数的要求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。