以
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;