当前位置:启航官网 > 考研报考 > 试题

一个C语言程庄有两个源文件:main.c和test.c,其内容如下图所示。在IA

2025-07-11 12:07:38

928

一个C语言程庄有两个源文件:main.c和test.c,其内容如下图所示。

在IA-32+Linux平台上执行上述程序,函数funct()对应汇编代码如下图所示。假定该函数开始执行时,R[esp]=0xbf000800,R[ebp]=0xbf000820,请回答下列问题。

执行第2行指令后,寄存器EBP中的内容事什么?(2分)

第4行缺失的汇编指令是什么?局部变量x和y所在存储单元的虚拟地址分别是什么?(4分)

执行scant()函数时,若从键盘输入-125和10,则funct()函数的返回值为多少?若函数funct()第4行写成“scant(%d%d\n,x,y);”则scant()和funct()两个函数的执行过程中分别可能会发生什么情况?(10分)

第12行指令是算术右移指令,在此设置该指令的目的是什么?(4分)

main.c和test.c中都有result变量,为何链接时不会发生链接错误?它们各自被分配在虚拟地址空间的哪个储存区域?(2分)

已知页大小为4KB,若采用4-路组相联的L1 data cache共有64组,主存块大小为64B,系统中只有该进程在执行,则执行第13行的idiv1指令时是否会发生数据cache缺失?该指令中的存储器操作数应装入L1 data cache的哪一组?(3分)

1 pushl %ebp

2 movl %esp,%esp

3 subl $48,%esp

4

5 movl %cax,8(%esp)

6 lcal -4(%esp), %cax

7 movl %cax,4(%esp)

8 movl $.LC0, (%esp)

9 call scanf

10 movl -4(%ebp), %cax

11 movl %cax,%edx

12 sarl $3},%edx

13 idivl -8(%ebp)

14 movl %cax,-12(%ebp)

15 movl -12(%ebp), %cax

16 leave

17 ret

查看答案和解析

【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。

免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。 如果本站文章侵犯到您的权利,请联系我们(400-108-7500)进行删帖处理。
下一篇 最后一页

启航教育热门私房课

MORE
  • 26考研VIP领学计划

    全程跟进
    形式:线上+线下
     

    查看详情

    在线咨询

  • 26考研专属VIP班

    联报优惠
    形式:线上
     

    查看详情

    在线咨询

  • 26在职考研课程

    专为在职人定制
    形式:线上
     

    查看详情

    在线咨询

2026考研

小班面授 名额有限 抢先体验

点击预约 

为你推荐

    姓名

    手机号

    获取答案
    扫描上方二维码免费领取学习资料