首页 > 试题广场 >

从如下形式的C语言代码开始: long test(long

[填空题]

从如下形式的C语言代码开始:

long test(long x, long y, long z) { 
    long val =1;
    if 2 {
       if 3
          val =4;
       else
          va1=5;
    } else if 6
          val =7;
    return val;
}
GCC产生如下的汇编代码:
long test (long x, long y, long z)
x in %rdi, y in %rsi, z in %rdx
test:
leaq    (%rdi,%rsi), %rax
addq    %rdx,%rax
cmpq    $-3, %rdi
jge     .L2
cmpq    %rdx, %rsi
jge     .L3
movq    %rdi, %rax
imulq    %rsi, %rax
ret 
.L3:
movq    %rsi, %rax
imulq    %rdx, %rax
ret 
.L2:
cmpq    $2,%rdi
jle    .L4
movq    %rdi, %rax
imulq    %rdx, %rax
.L4:
rep; ret

填写C代码中缺失的表达式

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