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

问题描述 投票:0回答:1

我在研究x86-64的时候对条件分支很困惑。

compq %rax,%rdi
jl .L2

哪一个是正确的理解?

  1. 如果%rax <%rdi,跳转到L2
  2. 如果%rax>%rdi,跳转到L2
x86 x86-64 conditional-execution
1个回答
0
投票

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

使用英特尔语法时会更清楚,因为AT&T交换的目的地和来源将是more confusing on instructions like cmp and sub

cmp rdi, rax
jl .L2

Jcc instructions总是比较第一个操作数和第二个操作数。在这种情况下,当rdi <rax时它会跳转

© www.soinside.com 2019 - 2024. All rights reserved.