【发布时间】:2018-09-16 10:13:40
【问题描述】:
我在学习 x86-64 时对条件分支感到很困惑。
compq %rax,%rdi
jl .L2
哪个是正确的理解?
- 如果 %rax
- 如果 %rax > %rdi,跳转到 L2
【问题讨论】:
标签: assembly x86 x86-64 att conditional-execution
我在学习 x86-64 时对条件分支感到很困惑。
compq %rax,%rdi
jl .L2
哪个是正确的理解?
【问题讨论】:
标签: assembly x86 x86-64 att conditional-execution
x86-64 中没有 compq。在比较 AT&T 语法中的 64 位操作数时,CMP 将是 cmpq。
使用 Intel 语法会更清楚,因为 AT&T 交换了目标和源,即more confusing on instructions like cmp and sub
cmp rdi, rax
jl .L2
Jcc instructions 总是将第一个操作数与第二个操作数进行比较。在这种情况下,当 rdi
【讨论】:
(long int)rax < (long int)rdi时跳转。