首页 > 试题广场 >

函数fun_b有如下整体结构: long fun_b(un

[问答题]

函数fun_b有如下整体结构:

long fun_b(unsigned long x) { 
long val = 0; 
long i;
for ( ... ; ... ; ... ) {
}
return val;
}

GCC C编译器产生如下汇编代码:

long fun_b(unsigned long x) 
x in %rdi
fun_b:
 movl    $64, %edx
 movl    $0, °/0eax
.L10:
  movq  %rdi,%rcx
  andl  $1,%ecx
  addq   %rax,%rax
  orq   %rcx,%rax
  shrq   %rdi
  subq   $1,%rdx
  jne    .L10
  rep;ret

逆向工程这段代码的操作,然后完成下面的工作:

A. 根据汇编代码版本填写C代码中缺失的部分。

B. 解释循环前为什么没有初始测试也没有初始跳转到循环内部的测试部分。

C. 用自然语言描述这个函数是计算什么的。

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