weixin_43353542 2018-12-07 01:07
浏览 486

一道根据汇编代码补全c语言的题

题是 深入了解计算机系统 这本书第三张的练习题3.34,昨天卡了好久,根据汇编代码补空
int rfun(unsigaed x)
{
if ( ______ )
return _____;
unsigned nx = ______;
int rv = rfun (nx);
return ______;
}
GCC产生如下汇编代码(省略了建立和完成代码)
1 movl 8(%ebp), %ebx
2 movl $0, %eax
3 testl %ebx, %ebx
4 je .L3
5 movl %ebx, %eax

6 shrl %eax
7 movl %eax, (%esp)
8 call rfun
9 movl %ebx, %edx
10 andl $1, %edx
11 leal (%edx,%eax), %eax
12 .L3:
我填的是
x==0
0
x>>1
rv+x&1
但是调试出来不对,有人能帮我看看吗

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 双层网络上信息-疾病传播
    • ¥50 paddlepaddle pinn
    • ¥15 Stata 面板数据模型选择
    • ¥20 idea运行测试代码报错问题
    • ¥15 网络监控:网络故障告警通知
    • ¥15 django项目运行报编码错误
    • ¥15 请问这个是什么意思?
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services
    • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏