• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 數據處理指令之: TST測試指令

    數據處理指令之: TST測試指令

    作者: 時間:2013-09-13 來源:網絡 收藏

    6.9 指令

    1.指令的編碼格式

    TST(Test)測試指令用于將一個寄存器的值和一個算術值做比較。條件標志位根據兩個操作數做“邏輯與”后的結果設置。

    本文引用地址:http://www.czjhyjcfj.com/article/257068.htm

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

    圖6.10 TST指令編碼格式

    2.指令的語法格式

    TST{cond>} Rn>,shifter_operand>

    ① cond>

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

    ② Rn>

    指定第一個源操作數寄存器。

    ③ shifter_operand>

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

    注意

    當指令的編碼格式中I位等于0并且移位操作數shifter_operand中bit[7]和bit[4]也都等于1時,指令并非TST指令。詳情請參閱系統結構參考手冊。

    3.指令操作的偽代碼

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

    If ConditionPassed{cond} then

    ALU_out = Rn AND shifter_operand

    N Flag = ALU_out[31]

    Z Flag = if ALU_out==0 then 1 else 0

    C Flag =shifter_carry_out

    V Falg=unaffected

    4.指令舉例

    【例6.9】TST指令舉例。

    TST類似于CMP,不產生放置到目的寄存器中的結果。而是在給出的兩個操作數上進行操作并把結果反映到狀態標志上。使用TST來檢查是否設置了特定的位。操作數1是要測試的數據字而操作數2是一個位掩碼。經過測試后,如果匹配則設置Zero標志,否則清除它。和CMP指令一樣,該指令不需要指定S后綴。

    下面的指令測試在R0中是否設置了位0

    TST R0, #%1



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 察隅县| 嵊泗县| 黑龙江省| 莆田市| 宁明县| 饶阳县| 蚌埠市| 平舆县| 高青县| 巴南区| 长子县| 兰溪市| 大竹县| 福海县| 榕江县| 漠河县| 中阳县| 民勤县| 繁昌县| 千阳县| 长治县| 民县| 永靖县| 清水河县| 鄂托克前旗| 玉龙| 阜平县| 泾源县| 麻栗坡县| 苍溪县| 儋州市| 华池县| 岳阳市| 石渠县| 江源县| 平利县| 平乡县| 海盐县| 杭州市| 百色市| 德江县|