汇编语言的发展历史

本文介绍的汇编语言是基于Intel处理器系列的

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

编译器的作用:

原则:基于编程语言的规则,目标机器的指令集以及操作系统的惯例
功能:将编程语言转化为汇编语言
 

为什么要了解汇编语言?

高级语言提供的抽象层会隐藏我们想要了解的程序的运行时行为,导致我们无法理解执行代码时计算机底层到底干了什么?

了解汇编语言就是了解执行高级语言的时候计算机底层的硬件时怎么工作的。从而能够对代码执行时计算机的工作流程有所了解,明确诸如内存溢出,栈溢出等异常和错误的本质,更便于优化代码,提高代码效率,找出异常原因,解决系统问题,同时方便查找系统漏洞,抵御黑客攻击。

我们要了解的

1.典型的编译器在将C程序结构变换成机器代码所做的转换
2.基本的汇编指令

历史的技术变革

Intel处理器系列又称为X86,经历了一个长期的,不断发展和进化的过程。它是第一代单芯片。开始时,它是16位微处理器之一。下面列举一些Intel处理器的模型,以及它们的一些关键特性

1.8086(1978年,29K个晶体管)。是第一代单芯片,16位微处理器之一。8088是8086的一个变种,在8086上增加了一个8位的外部总线,构成最初的IBM的个人计算机的心脏.IBM与当时的微软合作开发了MS-DOS操作系统。最初的将机器型号有655 360字节的地址空间——地址有20位字长(可寻址范围为1048 576字节 ),操作系统保留了393 216字节用。 1980年,8087浮点协处理器(49K个晶体管)出现,与一个8086或8088处理器一同运行,执行浮点指令。

8087建立了x86系列的浮点模型,通常被称为“x87”。

2.80286(1982年, 275k个晶体管)。体系结构扩展到32位。
增加了平坦寻址模式,是intel中第一台全面支持Unix操作系统的机器。

3.i486(1989年 ,1.2M个晶体管)改善了性能,同时将浮点单元集成到了处理器芯片上,指令集没有明显的改变。

4.Pentium(1993年,3.1M个晶体管)改善了性能,但是只对指令集进行了一个小的扩展。

5.PentiumPro(1995年,5.5M个晶体管)引入全新的处理器设计,在内部被称为P6的微体系结构。指令集中增加了一类“条件传送”指令。

6.Pentium/MMX(1997年,4.5M个晶体管)在Pentium处理器中增加了一类处理整数或浮点向量的指令。每个数据大小可以是1,2,4字节,每个向量总长64位。

7.Pentium 2(1997年,7M个晶体管)对P6微体系结构进行了延申。

8.Pentium3 (1999年,8.2M个晶体管)引入了SSE,这是一类处理器整数或浮点数向量的指令。每个数据可以是1,2,4个字节,打包成128位的向量。芯片上包括了耳机高速缓存,这种芯片后来最多使用了24M个晶体管。

9.Pentium4(2000年,42M个晶体管)SSE扩展到了SSE2,增加了新的数据类型(包括双精度浮点数),以及针对这些格式的144条指令。通过这些扩展,编译器可以使用SSE指令(不是x87指令)来编译浮点代码。

10.Pentium 4E(2004年,125M个晶体管)增加了超线程,这种技术可以在一个处理器上同时运行两个程序;增加了EM64T,它是Intel对AMD提出的对IA32的64位扩展的实现,我们称之为x86-64.

11.Core 2(2006年,291M个晶体管)。回归到类似于P6的微体系结构。Intel的第一个多核微处理器,多处理器实现在一个芯片上。不支持超线程。

12.Core i7 , Nehalem(2008年,781M个晶体管)。既支持超线程,也有多核,每个芯片上最多四个核。
        Core i7,Sandy Bridge(2011年,1.17G个晶体管)。引入了AVX,是对SSE的扩展,支持把数据封装进256位的向量。|
        Core i7,Hashwell(2013,1.4G个晶体管)。将AVX扩展至AVX2,增加了更多的指令和指令格式。

每个后继处理器都向前兼容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值