在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 淺述ARM匯編的立即數(shù)

            淺述ARM匯編的立即數(shù)

            作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
            大多數(shù)的數(shù)據(jù)處理指令和部分狀態(tài)寄存器訪問指令用到立即數(shù),在ARM中不是所有數(shù)都能用作立即數(shù);

            本文引用地址:http://www.biyoush.com/article/201611/317881.htm

            一條典型的ARM匯編語法格式:

            {cond}{S} ,,

            其中 opcode: 指令助記符,如ADD、SUB、MOV等;
            cond: 條件碼助記符,如EQ(0000)、NE(0001)、AL(1110)等;
            S:如果指令有S后綴,則該指令的操作會影響CPSR的值;
            Rd:目標(biāo)寄存器;
            Rn: 包含第一個(gè)源操作數(shù)的寄存器;
            shifter_operand: 表示第二個(gè)源操作數(shù),可以為立即數(shù)。

            一條典型的ARM匯編編碼格式:

            操作數(shù)的語法格式:
            #
            其中,=immed_8循環(huán)右移(2*rotate_imm)

            immediate: 立即數(shù)
            immed_8 : 8位的常數(shù)
            rotate_imm: 4位的循環(huán)右移值

            意思是每個(gè)立即數(shù)都是由一個(gè)8位的常循環(huán)右移偶數(shù)位得到。

            ROR 循環(huán)右移:即將操作數(shù)循環(huán)按指定的數(shù)量向右循環(huán)移位,左邊用右邊移出的位來填充;

            例如:有效的立即數(shù):0x104、0xff0
            immediate : 0x104// 0001 0000 0100
            immed_8 : 0x81// 0100 0001
            左邊補(bǔ)0: 0x00000081// 0000 0000 0000 0000 0000 0000 1000 0001
            rotate_imm: 15 // 循環(huán)右移(2*15)位
            // 0000 0000 0000 0000 0000 0001 0000 0100
            // 0x0000 0104

            immediate : 0xff0 // 1111 1111 0000
            immed_8: 0xff// 1111 1111
            左邊補(bǔ)0: 0x000000ff// 0000 0000 0000 0000 0000 0000 1111 1111
            rotate_imm: 14// 循環(huán)右移(2*14)位
            // 0000 0000 0000 0000 0000 1111 1111 0000
            // 0x0000 0ff0

            無效的立即數(shù)不能通過上面的構(gòu)造方法得到:0x101、0x102、0xff1
            0x101:0001 0000 0001(不能通過一個(gè)八位常數(shù)獲得)
            0x102: 0001 0000 0010(不能通過移動偶數(shù)位獲得)
            0xff1: 1111 1111 0001

            但是有時(shí)候用出現(xiàn)這種情況,如:0x3f0
            可以為:#0x3f,ror (2*14)
            或: #0xfc,ror (2*15)

            面對這種情況,ARM有如下規(guī)則:
            1. 當(dāng)立即數(shù)的值0-0xFF時(shí),immed_8=,rotate_imm=0;
            2. 其它情況下,匯編編譯器選擇使rotate_imm的數(shù)值最小的編碼方式.

            所以0x3f0 是通過 0x3f>>(2*14) 的方式獲得。

            LDR偽指令: 裝入32位立即數(shù)或地址到寄存器

            語法: LDR{} ,=[|label-expr]

            expr表示32位常數(shù)

            eg:

            ldr r3,=0xFFF
            ldr r1, =12345678



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

            評論


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

            關(guān)閉