x86-64的条件跳转如何工作?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了x86-64的条件跳转如何工作?相关的知识,希望对你有一定的参考价值。
我在研究x86-64的时候对条件分支很困惑。
compq %rax,%rdi
jl .L2
哪一个是正确的理解?
- 如果%rax <%rdi,跳转到L2
- 如果%rax>%rdi,跳转到L2
答案
在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时它会跳转
以上是关于x86-64的条件跳转如何工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何计算程序(或函数调用)中两点之间执行的 x86-64 指令的数量?
x86-64 GAS Intel 语法中的 RIP 相对变量引用(如“[RIP + _a]”)如何工作?
2018-2019-1 20165304 《信息安全系统设计基础》第四周学习总结
-bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory(代码片段