天天看點

ARM64彙編(二)if條件判斷——cmp/bl/b.gt/b.lt/b.eq/b.ge/b.le(比較指令)

文章目錄

  • if條件判斷——cmp/bl/b.gt/b.lt/b.eq/b.ge/b.le(比較指令)
  • while/for循環識别
  • Switch
    • 三個及以下case
    • 四個case
    • 分布差異大的?
    • 分布差異小的?
    • 總結
  • 指針

if條件判斷——cmp/bl/b.gt/b.lt/b.eq/b.ge/b.le(比較指令)

  • CMP:(compare)

    CMP w0 , w1

    的意思是比較的意思:相當于将w0減去w1但是不會改變兩個寄存器的值即兩個寄存器不會變化,但是其結果會影響cpsr狀态寄存器的标記值(nzcv)。

把一個寄存器的内容和另一個寄存器的内容或立即數進行比較。但不存儲結果,隻是正确的更改标志。

  • BL loc_1000068** (标号位址):

    跳轉到标号處執行

  • B.LE loc_1000068** :

    小于判斷LE是(less than or equal to)的意思當結果為小于等于的時