深入理解计算机系统阅读笔记
王玉成的博客
这个作者很懒,什么都没留下…
展开
-
笔记一 2.1.8异或交换产生的问题
博客一放,又是好久没有写了。。。。前两天买了两本砖头书回来。一本是《深入理解计算机系统》第二版的的中文版,另一本便是《算法导论》第三版的中文版。打算花时间认认真真消化完这两本书。再结合自己几年的工作经验,根据理论,做一些分析,力争找到问题的本源,以及解决办法,多写几句没事,争取把问题讲透。另外一点,便是想把不扎实的知识点,通过阅读这本书,把东西吃透。需要整理的代码,自己扔在[csdn的git托管中原创 2016-09-03 01:38:29 · 1265 阅读 · 0 评论 -
笔记三 第2章总结及感悟
前几天太忙。没来得及继续看书。今天趁放假,把第2章看完了。除浮点数知道存储格式,略过原理推导外,其它部分都认真读了。第二章的核心:数的表示与数的运算。需要注意下列几类问题:数的表示 数的表示,按数的类型划分:整数和浮点数。按定义规则,分为有符号数和无符号数。共4个大类。其中,浮点,可以理解float以及double在内存单元中的定义情况,以及小数如何计算。然后+0.0与-0.0的差别,以及浮点原创 2016-09-15 22:05:33 · 1303 阅读 · 0 评论 -
笔记二 习题2.26有符号和无符号引出的问题
这几天没有看书。以后记得坚持。看到讲位移和符号的关系。 其中对于嵌入式开发人员,关注的是逻辑右移和算术右移(高位如果为1,就依次填充1)的差异性,一般的编译器默认的是算术右移。 我们在操作硬件时,必须使用无符号的类型。上面是概念性的理解。但是关于有符号和无符号类型,在现实中的确会造成困扰。 分析代码在此。我用的是64位的机器编译的,所以size_t类型是unsigned long int类型。原创 2016-09-07 23:08:30 · 1402 阅读 · 0 评论 -
笔记四 第三章机器级表示总结一,移位运算,控制指令
概述第四章主要讲述的是语言的机器级表示。 实际上,做为非汇编的机器语言,在应用层的程序开发时,是很少接触到汇编语言的。但是,汇编语言又是非常重要,只有理解了汇编语言,才能如何优先代码,如何调试代码,如何写出健壮的代码。现有的C库中某些函数的问题,如何分析,如何规避。 在嵌入式系统开发中,特别在非MMU的祼机程序中,程序的入口,异常管理,更需要对汇编语言的深入了解。 这一章的分析流程特别适原创 2016-10-01 00:12:28 · 1359 阅读 · 0 评论 -
笔记五 第三章机器级表示总结二, 过程,递归,数组,结构与联合,调试及优化
接上篇。过程我们在学C语言中,经常会注意到一个话题,就是函数参数的入栈问题。然后,就有接下来的图片 然后在栈向下生长的方向上,一般来就,就调用者和非调用者的关系。一般来说,当一个函数调用另一个函数时,会先把最右边的参数压入到高地址,然后把最左边的参数压入低地址。最后把函数的返回地址压入栈。这也是平时所说的,函数从右往左入栈的来源。 上图中,还引出另一个问题,如果被调用者的参数,是调用者的局部原创 2016-10-06 00:08:18 · 1427 阅读 · 0 评论