Как работает условный переход x86-64? - PullRequest
0 голосов
/ 16 сентября 2018

Я так растерялся из-за условного перехода, когда изучал x86-64.

compq %rax,%rdi
jl .L2

Какой из них является правильным пониманием?

  1. , если% rax <% rdi, перейти к L2 </li>
  2. , если% rax>% rdi, перейти кL2

1 Ответ

0 голосов
/ 16 сентября 2018

В x86-64 нет compq. Существует CMP , которая будет cmpq при сравнении 64-битных операндов в синтаксисе AT & T.

Это будет понятнее при использовании синтаксиса Intel, потому что AT & T меняет место назначения и источник, что будет более запутанным в таких инструкциях, как cmp и sub

cmp rdi, rax
jl .L2

Инструкции Jcc всегда сравнивают первый операнд со вторым. В этом случае он будет прыгать, когда rdi

...