2015-05-23 6 views
-2

Im пытается воссоздать функцию «меньше» в сборке AMD64.Сборка менее

Как и в этом случае я хочу возврата 1, если параметр в% RDI составляет менее 3.

 .globl f 
     .type f, @function 
f: 
     xor %rax, %rax 
     movq %rdi, %r10 
     cmpq $3, %r10 
     cmovlq $1, %rax 
     ret 

Я никогда не использовал CMOV раньше, и я не уверен, если я использую это правильный путь , Я получаю следующее сообщение об ошибке:

Error: suffix or operands invalid for cmovl

Может кто-нибудь помочь мне здесь?

ответ

3

Вам следует ознакомиться с инструкцией по набору инструкций. Нет cmov, который позволяет использовать непосредственный операнд, вам нужно использовать регистр.

+0

ОК спасибо, поэтому, если я ставлю '$ 1' в регистр, он должен работать так: –