回覆列表
  • 1 # 使用者7724043881117

    當處理器工作在ARM狀態時,幾乎所有的指令均根據CPSR中條件碼的狀態和指令的條件域有

    條件的執行。當指令的執行條件滿足時,指令被執行,否則指令被忽略。

    每一條ARM指令包含4位的條件碼,位於指令的最高4位[31:28]。條件碼共有16種,每種條件碼

    可用兩個字元表示,這兩個字元可以新增在指令助記符的後面和指令同時使用。例如,跳轉指令B

    可以加上字尾EQ變為BEQ表示“相等則跳轉”,即當CPSR中的Z標誌置位時發生跳轉。

    在16種條件標誌碼中,只有15種可以使用,如表所示,第16種(1111)為系統保留,暫時不

    能使用。

    指令的條件碼

    條件碼 助記符字尾 標 志 含 義

    0000 EQ Z置位 相等

    0001 NE Z清零 不相等

    0010 CS C置位 無符號數大於或等於

    0011 CC C清零 無符號數小於

    0100 MI N置位 負數

    0101 PL N清零 正數或零

    0110 VS V置位 溢位

    0111 VC V清零 未溢位

    1000 HI C置位Z清零 無符號數大於

    1001 LS C清零Z置位 無符號數小於或等於

    1010 GE N等於V 帶符號數大於或等於

    1011 LT N不等於V 帶符號數小於

    1100 GT Z清零且(N等於V) 帶符號數大於

    1101 LE Z置位或(N不等於V) 帶符號數小於或等於

    1110 AL 忽略 無條件執行

  • 中秋節和大豐收的關聯?
  • 求助!貓咪吐了但精神很好是怎麼回事?