關於cmp指令

2021-10-12 09:51:35 字數 502 閱讀 5935

cmp %rdi, (%rsi)

jge .else

為例:1、用來設定條件位的是通過 (%rsi) - %rdi,

若m[(%rsi)] = 2, %rdi = 1,

那麼zf = 0(非零),sf = 0(不為負).

2、同時,jge也將基於(%rsi) - %rdi 進行跳轉。

此處 (%rsi) greater than %rdi,因此將進行跳轉。

3、不過需要注意的是,在c的 if 命令中,當if not expression 時才發生跳轉。那麼假設%rsi = p, %rdi = a,的話,該兩句先展示其邏輯即為:

if((*p) - a >= 0) goto else;

if

(a >

*p) do_if_statement;

else do_else_statement;

CMP比較指令詳解

cmp compare 指令進行比較兩個運算元的大小 例 cmp oprd1,oprd2 為第乙個操作減去第二個運算元,但不影響第兩個運算元的值 它影響flag的cf,zf,of,af,pf 我們怎麼判斷大小呢?若執行指令後 zf 1 這個簡單,則說明兩個數相等,因為zero為1說明結果為0 當無符...

170419 彙編 cmp指令

1625 5 王子昂 總結 2017年4月19日 連續第200天總結 a.組合語言十一章 b.cmp指令是比較指令,相當於減法,但不儲存結果 它執行後對標準暫存器產生影響,其他相關指令通過讀取flag來得知結果 eg cmp ax,ax 結果 zf 1,pf 1,sf 0,cf 0,of 0 對cm...

ARM指令CMP詳解

1 加減指令 add r1,r2,1 r1 r2 1 sub r1,r2,1 r1 r2 1 2 adr指令 adr是小範圍的位址讀取偽指令,ldr是大範圍的讀取位址偽指令。可實際上adr是將基於pc相對偏移的位址值或基於暫存器相對位址值讀取的為指令,而ldr用於載入32為立即數或乙個位址到指定的暫...