新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Thumb指令集之:Thumb數(shù)據(jù)處理指令

        Thumb指令集之:Thumb數(shù)據(jù)處理指令

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

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

        11.4.34減法指令SUB(4)

        (1)編碼格式

        減法指令SUB(4)的編碼格式如圖11.40所示。

        圖11.40SUB(4)指令的編碼格式

        SUB(4)指令從堆棧指針SP中減去7位立即數(shù)的4倍,也就是說其取值為在0~508范圍內(nèi)4的倍數(shù)。

        (2)指令的語法格式

        SUBSP,#immed_7>×4

        ①SP

        程序的堆棧指針,同時也為指令的目的寄存器,存放指令的運算結(jié)果。

        ②immed_7>

        7位立即數(shù),其值的4倍將作為減數(shù)參加運算。

        (3)指令操作的偽代碼

        SP=SP–(immed_72)

        注意

        中,使用滿遞減堆棧,該指令常被用于元素的入棧操作。

        (4)對應(yīng)的指令

        SUBSP,SP,#immed_7>*4

        11.4.35位測試指令TST

        (1)編碼格式

        位測試指令TST的編碼格式如圖11.41所示。

        圖11.41TST指令的編碼格式

        TST指令將兩個寄存器的值按位做邏輯與操作,并根據(jù)指令的執(zhí)行結(jié)果更新CPSR中相應(yīng)的條件標(biāo)志位。TST指令常被用于測試寄存器中某一位是否置位。

        (2)指令的語法格式

        TSTRn>,Rm>

        ①Rn>

        操作數(shù)寄存器,用于存放指令的第一個操作數(shù)。

        ②Rm>

        操作寄存器,該寄存器中的值將和Rn>寄存器中的值做邏輯與操作。

        (3)指令操作的偽代碼

        alu_out=RnANDRm

        NFlag=alu_out[31]

        ZFlag=ifalu_out==0then1else0

        CFlag=unaffected

        VFlag=unaffected

        (4)對應(yīng)的指令

        TSTRn>,Rm>

        11.4.36中數(shù)據(jù)操作指令舉例

        下面的例子程序綜合使用了各種數(shù)據(jù)操作指令,通過該例可以對Thumb狀態(tài)下數(shù)據(jù)操作指令有更深入的了解。

        ADDr0,r4,r7 ;r0=r4+r7

        SUBr6,r1,r2 ;r6=r1–r2

        ADDr0,#255 ;r0=r0+255

        ADDr1,r4,#4 ;r1=r4+4

        NEGr3,r1 ;r3=0–r1

        ADDr2,r5 ;r2=r2ANDr5

        EORr1,r6 ;r1=r1EORr6

        CMPr2,r3 ;r2–r3,并更新CPSR

        CMPr7,#100 ;r7–100,并更新CPSR

        MOVr0,#200 ;r0=200


        上一頁 1 2 3 4 5 6 7 8 9 10 11 12 13 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 澄江县| 乌审旗| 南漳县| 佛教| 永吉县| 米林县| 余庆县| 定州市| 巴里| 镇安县| 巴林右旗| 曲松县| 柏乡县| 宁化县| 开封县| 麻城市| 望江县| 湛江市| 中方县| 天长市| 油尖旺区| 吉木乃县| 皋兰县| 阳新县| 精河县| 开平市| 闽清县| 绵阳市| 深泽县| 湖南省| 定襄县| 漯河市| 淳化县| 广昌县| 拉萨市| 桃园市| 平谷区| 乌拉特前旗| 成武县| 东阳市| 霍山县|