标签: assembly x86 x86-64
我正在查看一些x86-64汇编指令,这三行让我感到困惑:
add -0x4(%rbp),%eax cmp %eax,0x0(%rbp) je 400f36 <func>
根据我的理解,第1行将%eax设置为%rbp - 4的值,然后第2行将%eax的新值与$ rbp进行比较并设置标志。如果它们相等,第三条线会跳跃,但在这种情况下它们怎么能相等呢?