- 博客(6)
- 收藏
- 关注
原创 CSAPP
一、优化编译器的能力和局限性优化编译器就是要消除简单语言翻译中可能引入的低效率,改进目标程序的性能。一个编译器的好坏主要就是看这个编译器的效果是否良好。优化编译器无法判断函数调用时,是否在某些特殊情况下优化会造成结果不一致,因而无法造成某些优化。二、程序性能的表示对于一个程序,如果我们记录该程序的数据规模以及对应的运行所需的时钟周期,并通过最小二乘法来拟合这些点,我们将得到形如 y = a + bx 的表达式,其中 y 是时钟周期,x 是数据规模。当数据规模较大时,运行时间就主要由线
2021-12-29 21:57:02
355
原创 深入理解计算机系统3
一、加载有效地址leaq有效地址:Imm(rb,ri,s)→Imm+R[rb] +R[ri]·s写入到目的寄存器可以用来表示加法和有限的乘法运算比例因子取值只能是1,2,4,8这四个数中的一个,所以乘法运算需要多步完成二、移位操作SAL SHL…………算术右移=C右移逻辑右移需要填零可以用来计算2的许多次方乘法指令的执行需要更长的时间,故不宜三、条件码(主要用于逻辑判断)根据标志的值和它们的位运算对寄存器进行赋值,这样我们常...
2021-12-26 20:02:14
367
原创 深入理解计算机系统2
一、寻址和字节顺序大端法小端法:大小-高低位端-地址的最前面用自己的mac测试代码是小端32位的机器,使用4字节的地址,64位的机器使用8字节的地址。虽然整型和浮点数都是对数值12345进行编码,但是它们却有着完全不同的字节模式。类型 值 十六进制int 12,345 0x00003039float 12,345.0 0x00e44046二、补码意义我的理解就是通过溢出可以实现一个负数所应有的与正数相加所具有的性质,进而可以利用位运算优势计算减法等...
2021-12-17 14:44:12
117
原创 深入理解计算机系统
不知道怎么写,就说一些有感想的知识点。一、了解编译系统如何工作是大有益处的1、理解编译系统可以优化程序的性能.对机器执行的代码有一个基本的了解,这样我们就知道编译器把不同的C代码转换成的机器代码是什么。这个在今后的学习中与已学程序知识结合加深理解。2、理解编译系统可以帮助我们理解链接过程中出现的错误.但是当你试图去构建大型程序的时候,往往涉及到各种函数库的调用,根据以往的经验,一些奇奇怪怪的错误往往都是与链接器有关的。现在先大概了解,等有构建大型程序经验再思考。3、避免安...
2021-12-15 00:27:51
3433
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人