网站大量收购独家精品文档,联系QQ:2885784924

第三章习题-ddg技巧.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习 题 1. 给出以下概念的解释说明。 机器指令2. 简单回答下列问题。 (1)?(2)? (3)?(4)?(5)?.......... 要求回答下列问题或完成下列任务。 (1)给出每条汇编指令的注释,并说明为什么C代码只有一个if语句而汇编代码有两条条件转移指令。 (2)按照书中图3.22给出的“if () goto …”语句形式写出汇编代码对应的C语言代码。 13. 14.. 16. 回答下列问题:函数sw中的switch语句处理部分标号的取值情况如何?标号的取值在什么情况下执行default分支?哪些标号的取值会执行同一个case分支? 17..“%x %x”, x, y); 4 return x-y; 5 } 函数funct对应的汇编代码如下: 1 funct: 2 push l %ebp 3 movl %esp, %ebp 4 subl $40, %esp 5 leal -8(%ebp), %eax 6 movl %eax, 8(%esp) 7 leal -4(%ebp), %eax 8 movl %eax, 4(%esp) 9 movl $.LC0, (%esp) //将指向字符串“%x %x”的指针入栈 10 call scanf //假定scanf执行后x=15,y=20 11 movl -4(%ebp), %eax 12 subl -8(%ebp), %eax 13 leave 14 ret 假设函数funct开始执行时,R[esp]=0xbc000020,R[ebp]=0xbc000030,执行第10行call指令后,scanf从标准输入读入的值为0x16和0x100,指向字符串“%x %x”的指针为0x804c000。回答下列问题或完成下列任务。 (1)执行第3、10和13行的指令后,寄存器EBP中的内容分别是什么? (2)执行第3、10和13行的指令后,寄存器ESP中的内容分别是什么? (3)局部变量x和y所在存储单元的地址分别是什么? (4)画出执行第10行指令后funct的栈帧,指出栈帧中的内容及其地址。 19.efunc的C语言代码框架如下: 1 int refunc(unsigned x) { 2 if ( ) 3 return ; 4 unsigned nx = ; 5 int rv = refunc(nx) ; 6 return ; 7 } 上述递归函数过程体对应的汇编代码如下: 1 movl 8(%ebp), %ebx 2 movl $0, %eax 3 testl %ebx, %ebx 4 je .L2 5 movl %ebx, %eax 6 shrl $1, %eax 7 movl %eax, (%esp) 8 call refunc 9 movl %ebx, %edx 10 andl $1, %edx 11 leal (%edx, %eax), %eax 12 .L2: …… ret 根据对应的汇编代码填写C代码中缺失部分,并说明函数的功能。 20..] movw (%edx, %ecx, 2), %ax S[10] S[i+2] short * AS+2*i+4 leal 4(%edx, %ecx, 2), %eax S[i]-S S[4*i+4] *(S+i-2) 22...i, j, t; 3 for (i = 0; i M; i++) 4 for (j = 0; j M; j++) { 5 t = a[i][j]; 6 a[i][j] = a[j][i]; 7 a[j][i] = t; 8 } 9 } 已知采用优化编译(选项-O2)后函数trans_matrix的内循环对应的汇编代码如下: 1 .L2: 2 movl (%ebx), %eax 3 movl (%esi, %ecx, 4), %edx 4 movl %eax, (%esi, %ecx, 4) 5 addl $1, %ecx 6 movl %edx, (%ebx) 7 addl $76, %ebx 8 cmpl %edi, %ecx 9 jl .L2 根据上述汇编代码,回答下列问题或完成下列任务。 (1)M的值是多少?常数M和变量j分别存放在哪个寄存器中? (2)写出上述优化汇编代码对应的函数trans_matrix的C代码。 25.假设结构类型node的定义、函数np_

您可能关注的文档

文档评论(0)

4753333 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档