日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM 匯編指令條件執(zhí)行詳解

          ARM 匯編指令條件執(zhí)行詳解

          作者: 時間:2016-11-09 來源:網(wǎng)絡 收藏
          2.5 條件執(zhí)行

          ARM模式下,任何一條數(shù)據(jù)處理指令可以選擇是否根據(jù)操作的結果來更新CPSR寄存器中的ALU狀態(tài)標志位。在數(shù)據(jù)處理指令中使用S后綴來實現(xiàn)該功能。

          本文引用地址:http://yuyingmama.com.cn/article/201611/317772.htm

          不要在CMP,CMN,TST或者TEQ指令中使用S后綴。這些比較指令總是會更新標志位。

          在Thumb模式下,所有數(shù)據(jù)處理指令都更新CPSR中的標志位。有一個例外就是:當一個或更多個高寄存器被用在MOV和ADD指令時,此時MOV和ADD不能更新狀態(tài)標志.

          幾乎所有的ARM指令都可以根據(jù)CPSR中的ALU狀態(tài)標志位來條件執(zhí)行。參見表2-1條件執(zhí)行后綴表。

          在ARM模式下,你可以:

          · 根據(jù)數(shù)據(jù)操作的結果更新CPSR中的ALU狀態(tài)標志;

          · 執(zhí)行其他幾種操作,但不更新狀態(tài)標志;

          · 根據(jù)當前狀態(tài)標志,決定是否執(zhí)行接下來的指令。

          在Thumb模式,大多數(shù)操作總是更新狀態(tài)標志位,并且只能使用條件轉移指令(B)來實現(xiàn)條件執(zhí)行。該指令(B)的后綴和在ARM模式下是一樣的。其他指令不能使用條件執(zhí)行。

          2.5.1 ALU狀態(tài)標志

          CPSR寄存器包含下面的ALU狀態(tài)標志:

          2.5.2 執(zhí)行條件

          N,Z,C,V相關的條件碼后綴如下表所列:

          舉例說明:

          示例1:

          ADD r0, r1, r2 ; r0 = r1 + r2, 不更新標志位

          ADDS r0, r1, r2 ; r0 = r1 + r2, 后綴S表示更新標志位

          ADDCSS r0, r1, r2 ; If C 標志為1,則執(zhí)行r0 = r1 + r2, 且更新標志,

          CMP r0, r1 ; CMP指令肯定會更新標志.

          示例2:(請自行分析)

          gcd CMP r0, r1

          BEQ end

          BLT less

          SUB r0, r0, r1

          B gcd

          less

          SUB r1, r1, r0

          B gcd

          end



          評論


          技術專區(qū)

          關閉