装配不到

时间:2015-05-23 20:00:23

标签: assembly x86-64 att

我试图在AMD64程序集中重新创建一个“小于”的功能。

就像在这种情况下,如果%rdi中的参数小于3,我想返回1.

        .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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

您应该查阅指令集参考。没有protected function microtimeFormat($data,$format=null,$lng=null) { $duration = microtime(true) - $data; $hours = (float)($duration/60/60); $minutes = (float)($duration/60)-$hours*60; $seconds = $duration-$hours*60*60-$minutes*60; return number_format((float)$seconds, 2, '.', ''); } 允许立即操作数,您需要使用寄存器。