Я так растерялся из-за условного перехода, когда изучал x86-64.
compq %rax,%rdi jl .L2
Какой из них является правильным пониманием?
В x86-64 нет compq. Существует CMP , которая будет cmpq при сравнении 64-битных операндов в синтаксисе AT & T.
compq
cmpq
Это будет понятнее при использовании синтаксиса Intel, потому что AT & T меняет место назначения и источник, что будет более запутанным в таких инструкциях, как cmp и sub
cmp
sub
cmp rdi, rax jl .L2
Инструкции Jcc всегда сравнивают первый операнд со вторым. В этом случае он будет прыгать, когда rdi