今天是 2年修完清华6个CS硕士学位第36天
1. 第4次周计划概览
接下来10天,我将开启第一次主宰力量系列计划(2年精读彻底掌握40本国外计算机类类传世之作)。
第一次主宰力量计划之10天精读掌握 计算机组成与设计(COAD:Patterson and Hennessy,500页)
○ 教材网址:https://book.douban.com/subject/10441748/
○ 作者简介:
§ John L. Hennessy 斯坦福大学校长
§ David A. Patterson 加州大学伯克利分校计算机科学系教授,美国国家工程研究院院士,IEEE和ACM会士
○ 计划时间: 10.24~11.2号(这是2年修完清华6个CS硕士学位之第35天~45天,第4次周计划)
○ 学习时间:平均每天至少核心学习时间达到13小时,10天高效率学习130小时。
○ 伏笔:我对本书的难度也不太了解,如果部分内容难度过高我可能需要13~15天才能完成本教材的学习。
○ 辅助学习视频:
北京大学-计算机组成:http://www.chinesemooc.org/kvideo.php?do=kvideo_announcement&kvideoid=4392&classesid=1967
2. 今日学习成果
今日评分:82分(效率中等)
今日成果简述
- 理解MIPS寄存器的约定(关于调用过程中是否被系统自动被压入栈的约定,即哪些寄存器属于保护寄存器)
- 掌握在二进制补码的表示方法下取反的步骤
- 了解计算机对数字的四种不同的表示方法
- 掌握符号拓展的方法
- 掌握开辟栈空间的方法以及栈指针变化的规律
- 理解过程调用的流程以及相关特殊寄存器的作用(存放参数的寄存器,存放返回值的寄存器,存在返回地址的寄存器)
- 掌握过程调用相关指令 jal jr
- 理解栈内内容的排列顺序(先进的内容地址越高)
- 理解PC寄存器功能和使用场景
- 掌握指令NOR,并理解他能代替NOT的作用
- 理解branch指令
- 理解根据越小越快原则,MIPS不提供“小于则分支”指令
- 知道C语言要人为分配堆的内存的机制,以及这么设计造成的两个灾难问题
- 知道内存分配的约定(栈 堆 静态数据 动态数据 代码段的排列顺序)
- 理解编译器设计的这个优化功能的原理和目的:当编译器遇到一个叶过程,它会在用完所有临时寄存器之后,才使用那些“保存寄存器”;
- 理解MIPS设计3种指令结构的原因以及所采用的设计思想(中庸之道)
- 掌握MIPS I R J三种指令结构的区别和使用场景
- 知道字符串的三种表示方法,C和JAVA使用不同的表示法
- 理解MIPS的字节传输指令(lb,lh,lhu,lbu,sb,sh)
- 理解四个比较指令(slt,slti,sltu,sltiu)
- 理解MIPS体系保留at寄存器的原因
- 掌握MIPS加载32位常熟的方法(lui+ori或addi)
- 实战1:使用MIPS实现if-else语句
- 实战2:使用MIPS实现whle语句
- 实战3:数组标号是否越界的非精确简便检查方法
- 实战4: 使用汇编语言+栈结构实现C程序阶乘递归
- 实战5:使用汇编语言实现C字符串的复制
完成如下目录学习
今日笔记
3. 今日时间表
4. 今日反思
- 今日效率非常低,核心学习时间11小时;
- 今日仅仅学了10节(40页),这个速度我不满意。但是作者有些地方写的并不好影响我学习的速度。。