【读书笔记】程序是怎么跑起来的 矢泽久雄

【CPU】
1.CPU解释和运行最终转换成机器语言的程序内容
2.CPU内部由 寄存器、控制器、运算器和时钟 四个部分组成

【内存】
1.内存一般指的是主存
2.主存主要负责存储指令和数据
3.主存中,每一个字节都有一个地址编号
4.主存中存储的指令和数据会随着计算机的关机自动清除

【寄存器】
1.程序是把寄存器作为对象来描述的

【程序计数器】
1.一种CPU寄存器
2.决定程序的流程
3.通过设定,实现跳转指令;单纯的跳转指令,无法实现函数调用(函数调用使用call和return指令)

【汇编】
1.汇编 :汇编语言 -> 机器语言

【补数】
1.符号位是0表示正数,是1表示负数
2.补数就是用正数表示负数
3.为了获得补数,需要将二进制各数位数值全部取反后加一
4.例如,用8位二进制表示-1时,只需求得1得补数,即00000001的补数即可,即11111111;这样,相加后就得到0
5. 3-5用8位二进制表示,就是3+(-5),是00000011,加上00000101的补数,即11111011,结果是11111110,由符号位可知这是负数,利用负负得正的性质,求其补数为00000010,就是2,因此,11111110表示-2

【移位运算】
1.逻辑右移 :移位后在最高位补0
2.算术右移 :移位后在最高位填充移位前符号位的值(0/1)
3.左移时,只要在空处的低位补0即可

【符号扩充】
1.在保持值不变的前提下,转为其他位数的二进制数
2.不管是正数还是用补数表示的负数,只需要用符号位的值填充高位即可

【小数】
1.用二进制表示小数
2.计算机进行小数运算时出错的原因就是,有一些十进制小数无法表示成二进制
3.如何避免运算出错?
–小数转换成整数
–BCD

【浮点数】
1.32位float和64位double都用浮点数表示小数
2.浮点数用符号、尾数、指数三个部分(基数为2)
3.尾数部分用的是“将小数点前面的值固定为1的正则表达式“,即将二进制表示的小数进行逻辑移位,使整数部分第1位变成1,且只保留小数点后的
4.指数部分用的是“EXCESS系统表现“

【队列】
1.队列一般是以环状缓冲区的方式来实现的

【内存与磁盘】
1.计算机中主要的存储部件是内存和磁盘
2.磁盘中存储的程序,必须加载在内存后才能运行
3.磁盘缓存 :指的是从磁盘中读出的数据存储到内存空间,接下来读取同一数据,就不需要通过实际的磁盘,改善磁盘数据的访问速度;Web浏览器把低速的网络数据保存到相对高速的磁盘中
4.虚拟内存 :把磁盘的一部分作为假想的内存使用,内存不足时可以运行程序;虚拟内存有分段式和分页式,windows采用分页式

【节约内存的编程方法】
1.通过DLL文件实现函数共有 :程序运行时可以动态加载Library(函数和数据的集合)的文件;多个应用可以共有同一个DLL文件,节约内存
2.通过调用_stdcall来减小程序文件的大小

【RLE算法】
1.Run Length Encoding,数据*重复次数

【运行环境】
1.运行环境=操作系统+硬件
2.windows克服了cpu以外的硬件差异
3.API :应用程序向操作系统传递指令

【中断请求】
1.IRQ

【DMA】
1.不通过CPU,外围设备直接和主内存进行数据传送,短时间内传送大量数据

你可能感兴趣的:(计算机组成原理)