
学习《深入理解计算机系统》
文章平均质量分 56
old_imp
比较异想天开
展开
-
C中的整型(1)
。整型的位级表示 一个w位的无符号整型位向量所表示的值是: (1) Xi为位向量第i位bit值。 w位有符号二进制补码表示的位向量所表示的值是: (2) 等同于: (3) 其中w-1位为符号位 我们假设w为8,长度为8原创 2010-03-15 16:49:00 · 805 阅读 · 0 评论 -
学习链接的动手(2)
。使用ar工具生成静态库 fun.cint fun(int a, int b){ return a + b; }先编译成.o文件 终端输入 ar rcs funlib.a fun.o 有一个疑问:我在main.c中没有声明或者定义fun,也没有 包含任何头文件,居然编译通过!main.cint main(void){原创 2010-04-18 21:00:00 · 738 阅读 · 1 评论 -
优化程序性能(1)——基础优化
基础优化是硬件平台无关的优化。书上讲了几种基础的优化。 。代码移动 例如: int i ; for( i = 0; i { printf( get_element( i ) );//get_element()得到i位置的数组元素 } 每次循环都要调用get_length()函数,cpu耗费一些时原创 2010-04-04 13:24:00 · 729 阅读 · 0 评论 -
学习链接的动手(1)
main.cint fun(int a, int b);int main(void){ int a = 1; int b = 2; int c; c = fun(a, b); return 0;}fun.cint fun(int a, int b){ return a + b;原创 2010-04-18 17:09:00 · 696 阅读 · 0 评论 -
链接
。目标文件的类型 。可重定位目标文件 在linux下,经过预编译,编译,汇编之后生成的.o文件就是可重定位目标文件。 汇编器把可重定位目标文件分成多个节,其中有一个名为symtab的节,存储模块中定义和引用的函数和全局变量的信息。它不包括局部变量信息(局部变量运行时在栈中被管理)。 。可执行目标文件 可重定位目标模块链接之后生成可以执行文件,它还包含原创 2010-04-16 17:09:00 · 491 阅读 · 0 评论 -
Unix异常控制流(1)
。异常控制流 异常控制流是系统为了对系统状态变化作出反应,把处理器的指令执行流转到一个特殊方向的突变。 。异常 异常是异常控制流的一种形式,它介于处理器与操作系统之间,由它们共同完成异常控制流的任务。当处理器的状态发生变化时,处理器判断这个变化是否该引起异常,如果是的话,处理器会确定一个编号——异常号。异常号是一张叫做异常表(操作系统启动时候负责生成一张异常表)的表目原创 2010-04-17 17:53:00 · 994 阅读 · 0 评论 -
存储器层次结构
。SRAM 静态随机访问存储器 SRAM存储稳定,访问速度快 ,具有双稳定特性,一般作为1,2级高速缓存。 。DRAM 动态随机访问存储器 DRAM存储不如SRAM访问速度快,相比也没有SRAM稳定,一般作为主存(内存)和图形系统帧缓冲区。DRAM芯片中的一个单元存储一个位,w个单元存储一个字节,w个单元是c寻址的最小单位。n个这样的字节组成一个DRAM芯片,若干个DR原创 2010-04-15 17:19:00 · 634 阅读 · 0 评论 -
C中的整型(3)
。整型的加法 无符号和有符号加法有一样的规则: 假设x,y为w位整型数据。 x+y(如果其中一个操作数是无符号另一个有符号,有符号卡操作数会被强制转换为无符号)的结果等于位模式相加mod(2^w)。 。无符号加法溢出 w位的无符号数相加结果范围在0~2^(w+1)-2之内,可能需要w+1位表示,mod(2^w)相当于抛弃w位原创 2010-03-26 11:44:00 · 831 阅读 · 0 评论 -
C中的整型(2)
。扩展位表示 当把一个较小长度的整数数据类型强制转换成较大长度的整数数据类型时,编译器扩展整数数据的位表示。 假设要把一个w位的整数扩展成w + k位。 无符号数的扩展直接在扩展后的高K位填0,低位保持原先的状态。这种扩展称作“零扩展” 很容易可以看出根据C中的整型(1)的公式1求出的扩展后的数值不变。 对有符号数进行的扩展称作“原创 2010-03-25 18:08:00 · 578 阅读 · 0 评论 -
GCC GDB OBJDUMP 一些简单用法
一个包含main函数的.c文件可以编译成.o文件(二进制目标代码)、.out文件(我经常使用后缀.exe,用来执行的文件)、.s文件(汇编文件)。不包含的main函数的.c文件可以编译成.o文件、.s文件。 例: main.c文件包含程序入口点main函数gcc默认编译如 gcc -02 main.c -o main.exe 生成一个.exe二进制文件。它可以被命令./ma原创 2010-03-22 14:57:00 · 2565 阅读 · 1 评论 -
优化程序性能(2)——处理器相关的优化
在学这部分内容的时候我曾特地问过一些网友,我想了解一下大家对底层优化的看法,似乎大家还是比较赞同把 注意力集中在代码的上层架构设计上。各种原因吧,有的人可能觉得现代机器够快底层优化是在浪费时间,有的人认为干这种事情还地考虑到项目成本预算,有的人认为一些关键的代码已经有别人写好以API的形式提供了。书上的一些例子表明,一些底层的优化可以把一段代码的性能提提高到30-40倍。最近我没有太多时原创 2010-04-09 15:18:00 · 595 阅读 · 0 评论