计算机系统漫游第三章:程序的机器级表示(上),


CSAPP 第三章:程序的机器级表示(上)

为什么要学习机器代码?

了解程序运行过程中的细节

计算机执行机器代码,用字节序列彪马低级的操作,包括处理数据、管理内存、读写存储设备上的数据,以及利用网络通信。

高级语言编写的程序可以在很多不同的机器上编译和执行,而汇编代码则是与特定机器密切相关的。

Intel处理器历史(关注的)

Pentium 4E :(2004年,125M个晶体管)。增加了超线程,这种技术可以在一个处理器上同时运行两个程序。

Core 2:(2006年,291M个晶体管).Intel的第一个多核微处理器,即多个处理器实现在一个芯片上。但不支持超线程。

Core i7:(Nehalem 2008年,781M个晶体管)。即支持超线程,也有多核,最初的版本支持每个核上执行两个程序,每个芯片上最多四个核。

Core i7,Sandy Bridge(2011年,1.17G个晶体管)。引入了AVX,这是对SSE的扩展,支持把数据封装进256位的向量

程序编码

计算机系统(机器级)使用的两种抽象:利用更简单的抽象模型来隐藏实现的细节

指令集体系结构或指令集框架构(Instruction Set Architecture,ISA)来定义机器级程序的格式和行为,它定义了处理器状态、指令的格式,以及每条指令对状态的影响。

机器级程序使用的内存地址是虚拟地址,提供的内存模型看上去是一个非常大的字节数组。

相关内容

    暂无相关文章