我试图在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
有人可以帮助我吗?
答案 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, '.', '');
}
允许立即操作数,您需要使用寄存器。