CSAPP第三章作业题
来源:互联网 发布:ubuntu修改命令提示符 编辑:程序博客网 时间:2024/05/29 03:59
这一章读了蛮久,。, 中间又抽了点时间出去玩。
实验的部分,等读完整本书书之后再进行。本章课后习题,网上找不答案也是B了狗了。有几道题目,想了蛮久的。
3.59
所以,
注意:
对
代入后化简为
现在解释部分汇编指令的含义:
cqto 对%rax进行符号扩展,符号位存在%rdx之中
指令 4、5获得x的符号位并存在于%rcx之中
指令6 、7和8实现
mulq 单操作数实现了64位整数相乘,其高位存在于%rdx,低位存在于%rax
3.60
此题做出来的结果比较奇怪,不明白后面的代码时如何运行的:
第10行汇编中 salq %cl,%rdx
显然%rdx存了mask,%cl就是%rcx,而%rcx存了n,显然,只取%cl表示对n取模 即mask=mask<<(n%256),但是实际上根据之前的描述只会取(n%64)。部分存疑
3.61
此题很简单,只要稍微回顾下之前的知识即可。
代码如下:
movq $0 %raxtestq %rsi %rsije L1movq (%rsi) %rax.L1:req retz
3.62和3.63都是死脑筋,分清楚就好
3.64水题
add(A[i][j][k])=add(A)+sizeof(element)*(i*S*T+j*T+k);
S=5,T=13,R=7
R的计算则根据return sizeof(A)
3.67
懒得画图,
注意在eval过程之中使用了call prcess指令,这意味着压栈命令,%rsp+=8;
唯一的感受就是:谁使用谁分配内存,至于赋值的部分则交给了子程序。
3.68
这里涉及到对齐的问题,
第二条指令,不见得B=8,其实只需要B>4由于对齐的问题,就会空出相应的空间。显然,根据short s[A],A占据了剩余的20Byte
而第4条指令,则暗指int x[A][B]的空间大小为184Byte。 但是这部绝对,因为如果x占了180Byte, 则会空出4Byte来对齐 long y;
8>=B>4
10>=A>8
46>=AB>=45
显然B=5,A=9;
3.69
没做出来,懒得再分析了 有空回来二刷习题的时候慢慢研究(。,。)
3.70
这题感觉是非常简单的。
算一算,显然只需要16Byte即可。
第二条指令 movq 8(%rsi) %rax 访问指针 %rax=M(up+8)=up->next
第三条指令 %rdx=*(up->next)=up->next->p;
第四条指令 %rdx=*p;
所以
up->x=*(up->next->p)-up->next->y
- CSAPP第三章作业题
- csapp第三章读书笔记
- CSAPP 第三章 思维导图
- CSAPP 第三、五、六、七章
- CSAPP第三章学习笔记(二)
- 工作学习笔记——CSAPP第三章
- CSAPP第三章:程序的机器级表示 小结
- [CSAPP] 第三部分 第11章 网络 IP地址
- CSAPP--第三章中函数调用与返回的细节
- 《CSAPP》第三章之学习笔记(一)
- 第五章5.15作业题
- 作业题
- 作业题
- 作业题
- 作业题
- 台湾大学公开课《概率》第三周作业题
- CSAPP(深入理解计算机系统)第二版家庭作业答案-第三章
- 【CSAPP】《深入了解计算机系统》笔记-第三章 程序的机器级表现
- spring-mvc.xml
- 【java】堆排序 最小的k个数
- MySQL之复杂查询
- js获取服务器时间
- 【软考总结】-<算法>动态规划法--最长公共子序列
- CSAPP第三章作业题
- 秒杀系统架构分析与实战
- MapReduce三次排序
- 笔记——ServletConfig与ServletContext
- spring-mybatis.xml
- codeforces 225E 梅森素数
- 无用?
- 静态链接器构造
- 常见对象-String类