cmp:(compare)指令進行比較兩個操作數的大小
格式: cmp oprd1,oprd2
比較oprd1和oprd2操作數,然後通過助記符來實現想要的判斷。
teq: (test equal)測試相等,該指令通常用於比較操作數1和操作數2是否相等。
格式: teq oprd1,oprd2
TEQ指令用於把一個寄存器的內容和另一個寄存器的內容或立即數進行按位的異或運算,並根據運算結果更新CPSR中條件標誌位的值。該指令通常用於比較操作數1和操作數2是否相等。(EOR指令也是實現異或運算,只是不更新CPSR)
cmp和teq助記符如下
cmp使用實例實例1:
CMP R0, R1 ; R0與R1比較,做R0-R1的操作
ADDHI R0, R0, #1 ; 若R0 > R1, HI爲真,則R0 = R0 + 1
ADDLS R1, R1, #1 ; 若R0 <= R1, LS爲真,則R1 = R1 + 1
cmp使用實例實例2:
adr r0, _start
ldr r1, _TEXT_BASE
cmp r0, r1 r0與r1比較,做r0-r1的操作
blne cpu_init_crit 若ne(r0地址與r1地址不相等)爲真,執行bl cpu_init_crit 跳轉
teq使用實例實例1:
teq r0, r1 R0與R1是否相等
ADDeq R0, R0, #1 ; 若R0 == R1, eq爲真,則R1 = R1 + 1