x86-64 的条件跳转如何工作?



我在学习x86-64时对条件分支感到非常困惑。

compq %rax,%rdi
jl .L2

哪一个是正确的理解?

  1. 如果 %rax <%rdi,则跳转到 L2
  2. 如果 %rax> %rdi,则跳转到 L2

x86-64 中没有compq。在比较AT&T语法中的64位操作数时,CMP将cmpq

使用英特尔语法时会更清楚,因为AT&T交换了目的地和源,这将在cmpsub等指令上更加混乱

cmp rdi, rax
jl .L2

Jcc 指令总是将第一个操作数与第二个操作数进行比较。在这种情况下,当 rdi

  • JL 在 AT&T 语法中是什么意思?

相关内容

  • 没有找到相关文章

最新更新