簡體   English   中英

x86-64的條件跳轉如何工作?

[英]How does conditional jump of x86-64 works?

在學習x86-64時,我對條件分支感到困惑。

compq %rax,%rdi
jl .L2

正確的理解是哪一個?

  1. 如果%rax <%rdi,則跳至L2
  2. 如果%rax>%rdi,則跳至L2

x86-64中沒有compq 比較AT&T語法中的64位操作數時,會有CMPcmpq

使用Intel語法時會更清楚,因為AT&T會交換目標和源,這會使cmpsub等指令更加混亂

cmp rdi, rax
jl .L2

Jcc指令始終將第一個操作數與第二個操作數進行比較。 在這種情況下,當rdi <rax

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM