首页 > 试题广场 >

C代码开始的形式如下: long test (long x

[填空题]

C代码开始的形式如下:

long test (long x, long y){
    long val =1;
    if 2{
        if 3
            val =4;
        else
            val =5;
    } else if 6
            val =7;
    return val;
}

GCC会产生如下汇编代码:

long test (long x,long y)
x in %rdi,y in %rsi
test:
 leaq     0(,%rdi,8), %rax
 testq    %rsi, %rsi
 jle      .L2
 movq     %rsi, %rax
 subq     %rdi, %rax
 movq     %rdi, %rax
 andq     %rsi,  %rax
 cmpq     %rsi,  %rdi
 cmovge    %rdx, %rax
 ret
.L2:
 addq     %rsi, %rdi
 cmpq     %-2, %rsi
 cmovle    %rdi, %rax
 ret

填补c代码中缺失的表达式。

这道题你会答吗?花几分钟告诉大家答案吧!