新聞中心

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

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

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

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

        11.4.31減法指令SUB(1)

        (1)編碼格式

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

        圖11.37SUB(1)指令的編碼格式

        SUB(1)指令從指定寄存器減去3位立即數(shù)(取值范圍為0~8),并把指令的操作結(jié)果保存到寄存器,同時(shí)根據(jù)結(jié)果更新CPSR中相應(yīng)的條件標(biāo)志位。

        (2)指令的語法格式

        SUBRd>,Rn>,#immed_3>

        ①Rd>

        目的寄存器,存放指令的操作結(jié)果。

        ②Rn>

        被減數(shù)寄存器,包含減法操作的被減數(shù)。

        ③immed_3>

        作為減數(shù)的立即數(shù),該立即數(shù)的取值范圍為0~8。

        (3)指令操作的偽代碼

        Rd=Rn–immed_3

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=NOTBorrowFrom(Rn–immed_3)

        VFlag=OverflowFrom(Rn–immed_3)

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

        SUBSRd>,Rn>,#immed_3>

        11.4.32減法指令SUB(2)

        (1)編碼格式

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

        SUB(2)指令從指定寄存器減去8位立即數(shù)(即,取值范圍為0~256),并把指令的操作結(jié)果保存到寄存器,同時(shí)根據(jù)結(jié)果更新CPSR中相應(yīng)的條件標(biāo)志位。

        圖11.38SUB(2)指令的編碼格式

        (2)指令的語法格式

        SUBRd>,#immed_8>

        ①Rd>

        第一個(gè)源操作數(shù)所在的寄存器,存放減法操作的被減數(shù),同時(shí)將減法操作的執(zhí)行結(jié)果保存到該寄存器。

        ②immed_8>

        8位立即數(shù),即減法操作的減數(shù),取值范圍為0~255。

        (3)指令操作的偽代碼

        Rd=Rd–immed_8

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=NOTBorrowFrom(Rn–immed_8)

        VFlag=OverflowFrom(Rn–immed_8)

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

        SUBSRd>,Rd>,#immed_8>

        11.4.33減法指令SUB(3)

        (1)編碼格式

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

        圖11.39SUB(3)指令的編碼格式

        SUB(3)指令將指定寄存器的值和另一個(gè)寄存器表示的值做減法運(yùn)算,并根據(jù)指令的操作結(jié)果更新狀態(tài)寄存器的標(biāo)志位。

        (2)指令的語法格式

        SUBRd>,Rn>,Rm>

        ①Rd>

        目的寄存器,存放指令操作的結(jié)果。

        ②Rn>

        源寄存器,存放第一個(gè)操作數(shù),即減法運(yùn)算的被減數(shù)。

        ③Rm>

        源寄存器,存放第二個(gè)操作數(shù),即減法運(yùn)算的減數(shù)。

        (3)指令操作的偽代碼

        Rd=Rd–Rm

        NFlag=Rd[31]

        ZFlag=ifRd==0then1else0

        CFlag=NOTBorrowFrom(Rn–Rm)

        VFlag=OverflowFrom(Rn–Rm)

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

        SUBSRd>,Rn>,Rm>



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 连州市| 卫辉市| 志丹县| 台安县| 榆社县| 西安市| 珠海市| 湖州市| 龙里县| 克拉玛依市| 巧家县| 区。| 武安市| 房产| 永济市| 且末县| 乌鲁木齐县| 望谟县| 崇阳县| 嘉鱼县| 鸡西市| 金川县| 资兴市| 高清| 潮州市| 卢龙县| 永福县| 崇文区| 康马县| 漳平市| 麻阳| 泰安市| 米脂县| 阿拉善左旗| 开远市| 当雄县| 丰原市| 墨脱县| 扎囊县| 昭平县| 贺州市|