int get_cont(int *p1, int *p2)
{
if (p1 > p2)
return *p2;
else
return *p1;
}
Run Code Online (Sandbox Code Playgroud)
汇编代码为:
movl 8(%ebp), %eax
cmpl 12(%ebp), %eax
jbe .L2
movl 12(%ebp), %eax
movl (%eax), %eax
jmp .L3
Run Code Online (Sandbox Code Playgroud)
为什么使用jbe?条件是p1 > p2. 为什么不使用ja?
ja和jbe都是无符号跳转操作码。为什么编译器反转条件?