- 博客(230)
- 收藏
- 关注
原创 计算机程序的构造和解释 SICP(第2版) 练习1.9
(inc (+ (dec a) b)) 这个在应用序里面就是形成了递归咯。(+ (dec a) (inc b))这个在应用序里面就是形成迭代咯。之前说过了`应用序和正则序.因为scheme用的是应用序。
2025-01-12 11:38:16
85
原创 计算机程序的构造和解释 SICP(第2版) 练习1.6
所具有的特殊形式,根据解释器所使用的应用序求值规则,每个函数的实际参数在传入的时候都会被求值,因此,当使用。妹子写的新函数会递归太深直接GG。语句是一种特殊形式,当它的。分支会被求值,否则的话,只是一个普通函数,它没有。根据书本 12 页所说,而另一方面,新定义的。两个分支都会被求值。
2025-01-10 16:58:05
224
原创 计算机程序的构造和解释 SICP(第2版) 练习1.5
如果按正则序,直到实际需要再去求的话(test 0 (p))中的(p)是不会被需要的.所以最终会输出0.但是如果按应用序一开始(p)就会被求值然后报错.
2025-01-10 15:37:24
99
原创 深入理解计算机系统 CSAPP 实验lab:Cache Lab
I”表示指令加载,“L”表示数据加载,“S”表示数据存储,并且“M”表示数据修改。地址字段指定64位十六进制内存地址。size字段指定操作访问的字节数。
2024-08-22 11:47:31
392
原创 深入理解计算机系统 CSAPP 实验lab:Architecture Lab
前期准备参考: 深入理解计算机系统 CSAPP 第四章 Y86-64模拟器 安装与使用-优快云博客说一下指令mrmovq 8(%rdi),%rdi8(%rdi)显然是指向下一个元素的地址,要注意的是.quad ele2 和 ele2: 是两个不同的东西,8(%rdi)指的是前者,前者加上括号 (8(%rdi)) 才是后者..quad 0的值是 0,所以我们用andq %rdi,%rdi作为判断结束的语句.
2024-08-17 10:20:49
557
原创 深入理解计算机系统 CSAPP 实验lab:Attack Lab
学生将获得一对独特的自定义生成的x86-64二进制可执行文件,称为目标,它们有缓冲区溢出错误。另一个容易受到面向返回的编程攻击。学生被要求通过开发基于代码注入或面向返回的编程的漏洞来修改目标的行为。这个实验室向学生传授堆栈规则,并教他们编写容易受到缓冲区溢出攻击的代码的危险。如果你是一个自学的学生,这里有一对Ubuntu 12.4目标,你可以自己尝试。你需要使用“-q”选项运行你的目标,这样他们就不会试图联系一个不存在的评分服务器。如果你是一个拥有CS: APP账户的讲师,你可以在这里下载解决方案。
2024-08-12 08:24:08
438
原创 深入理解计算机系统 CSAPP 实验lab:Data Lab
此时 1000|0001=1001 但是我们不能用|运算好像又回到了刚才的问题了。实验资源下载地址:csapp.cs.cmu.edu/3e/labs.html。转换思路,我们尝试获得1001然后取反就可以获得目标0110了。这里我们不是按逻辑推导出来的,把此算法放入程序中测试,显示通过。目标: x ^ y = 0110。0010|0100=0110得到目标,但是我们不可以用|运算。只要结果对就行了,这里我们忽略得到结果的过程。刚好得到最初的目标0110 问题解决。
2024-08-02 11:53:09
420
原创 深入理解计算机系统 CSAPP 练习题12.4
我们每次都用read_set初始化ready_set是因为我们每次都处理read_set里的描述符,这是我们希望服务器做的事情.每次一有描述符3或描述符0,或者都来,我们就干对应的事.由此可以看到select函数的神奇之处,它把一个复杂的事情简单化了.由于它的阻塞,所以我们先处理哪个描述符似乎并不会有什么区别.
2024-07-28 16:42:39
127
原创 深入理解计算机系统 CSAPP 家庭作业11.11
方法请求时返回的一致。该请求方法的一个使用场景是在下载一个大文件前先通过。标头的值获取文件的大小,而无需实际下载文件,以此可以节约带宽资源。信息,并且这些标头与 HTTP。
2024-07-25 15:28:30
249
原创 深入理解计算机系统 CSAPP 家庭作业9.20
经过9.17和9.18,面对9.20应该是有点信心了,不过还是等到全部学完再回头做这个实验题吧.加油。
2024-07-17 14:38:34
132
原创 深入理解计算机系统 CSAPP 家庭作业9.19
a:错误,块大小递减,那就是大块排在前面,首次适配的话,那性能肯定很高,但是碎片肯定多啊。3. 保守的意思是:不是把垃圾全都收拾干净,有些垃圾不管它。b:错误,不一定啊,可以按块大小递增的方法排不是更好吗?c:错误,书上提到后进先出的顺序也需要边界标记来提速。a:正确:最小块大小为8,一直malloc(4)d:正确,方法不同,但实际执行的步数一样。d:错误,外部碎片和申请的内存大小相关。c:错误,应该是选择符合的,但是最小的。b:错误,最佳适配要慢点。
2024-07-17 10:46:52
170
原创 深入理解计算机系统 CSAPP 家庭作业9.17
找空闲块的时候,先把rover存到oldrover中,从rover开始往下一个找,如果没找到的话,就把heap_listp赋给rover,再从头开始找到overrover.两次循环都没有就返回NULL。这个答案就在官方文件里,核心思路是用rover代替原来的heap_listp.合并空闲块的时候要重置一下rover不然有几率会指到错误的地方.一开始将heap_listp赋给rover.
2024-07-16 10:26:36
448
原创 深入理解计算机系统 CSAPP 家庭作业9.16
最小块大小对内部碎片有显著的影响。因此,理解和不同分配器设计和对齐要求相关联的最小块大。很有技巧的一部分是,要意识到相同的块可以在不同时刻被分配或者被释放。最小块大小就是最小已分配块大小和最小空闲块大小两者的。
2024-07-15 18:19:06
128
空空如也
Y86-64汇编代码 CSAPP家庭作业4.47 jmp L2处于执行阶段时 L2的 rrmovq %rsi,%r8 处于译码阶段 为什么此时 译码阶段的寄存器的Stat的值为HLT?
2024-05-21
深入理解计算机系统 第四章 家庭作业4.47?
2024-05-21
DEV C++ 内联汇编代码编译通过无法运行
2024-05-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人