新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 數(shù)據(jù)處理指令之: RSB減翻轉(zhuǎn)指令

        數(shù)據(jù)處理指令之: RSB減翻轉(zhuǎn)指令

        作者: 時間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

        6.4 指令

        1.指令的編碼格式

        (Reverse Subtract)減操作指令,從寄存器shifter_operand>中減去Rn>表示的數(shù)值,并將結(jié)果保存到目標(biāo)寄存器Rd>中,并根據(jù)指令的執(zhí)行結(jié)果設(shè)置CPSR中相應(yīng)的標(biāo)志位。

        本文引用地址:http://www.104case.com/article/257073.htm

        指令的編碼格式如圖6.5所示。

        圖6.5 指令的編碼格式

        2.指令的語法格式

        RSB{cond>}{S} Rn>,Rn>,shifter_operand>

        ① cond>

        為指令編碼中的條件域。它指示指令在什么條件下執(zhí)行。當(dāng)cond>忽略時,指令為無條件執(zhí)行(cond=AL(Alway))。

        ② S>

        詳見SUB指令。

        ③ Rd>

        指定目標(biāo)寄存器。

        ④ Rn>

        指定第一個源操作數(shù)寄存器。

        ⑤ shifter_operand>

        使用的通用尋址模式確定第二個源操作數(shù)。它影響指令編碼格式中的I(bit[25])位和shifter_operand(bits[11∶0])位。

        注意

        當(dāng)指令的編碼格式中I位等于0,并且移位操作數(shù)shifter_operand中bit[7]和bit[4]也都等于1,則指令并非RSB指令。詳情請參閱系統(tǒng)結(jié)構(gòu)參考手冊。

        3.指令操作的偽代碼

        指令操作的偽代碼如下面程序段所示。

        If ConditionPassed{cond} then

        Rd= shifter_operand-Rn

        If S==1 and Rd==r15 then

        CPSR=SPSR

        Else if S==1 then

        N flag=Rd[31]

        Z flag=if Rd==0 then 1 else 0

        C flag=NOT BorrowFrom{shifter_operand - Rn}

        V flag=OverflowFrom{shifter_operand - Rn}

        4.指令舉例

        【例6.4】RSB指令舉例。

        下面指令序列可以求一個64位數(shù)值的負(fù)數(shù)。64位數(shù)放在寄存器R0與R1中,其負(fù)數(shù)放在R2和R3中。其中R0與R2中放低32位值。

        RSBS R2,R0,#0;

        RSC R3,R1,#0;

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        linux相關(guān)文章:linux教程




        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 德阳市| 奉新县| 伽师县| 涪陵区| 伊金霍洛旗| 沁水县| 新蔡县| 商丘市| 互助| 饶河县| 龙海市| 宣威市| 玉门市| 高雄县| 晋州市| 潼南县| 南溪县| 陆河县| 米泉市| 车险| 青冈县| 秀山| 盐源县| 武平县| 五家渠市| 佛山市| 黄骅市| 南木林县| 绥中县| 濮阳市| 林西县| 许昌县| 永仁县| 东至县| 宾阳县| 英德市| 淅川县| 红安县| 绵阳市| 岳阳县| 临湘市|