计算机系统(三)程序的机器级表示

本文探讨了计算机系统中程序的机器级表示,从历史角度概述了Intel x86处理器的演进,包括8086到Pentium 4等关键模型。介绍了编译器如何将高级语言转化为机器代码,强调了汇编语言在访问机器低级特性中的作用。此外,还讨论了程序编码过程,如C语言编译、汇编和链接的步骤,以及机器代码的两种形式。
摘要由CSDN通过智能技术生成

计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理存储器、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的原则、目标机器的指令集和操作系统遵循的原则,经过一系列的阶段产生机器代码。GCC C语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指令。然后GCC调用汇编器和链接器,从而根据汇编代码生成可执行的机器代码。

当我们用高级语言编程的时候,机器屏蔽了程序的细节,即机器级的实现。与此相反,当用汇编代码编程的时候,程序员必须指定程序的低级指令以执行计算。高级语言提供的抽象级别比较高,大多数时候,在这种抽象级别上工作效率会更高,也更可靠。编译器提供的类型检查能帮助我们发现许多程序错误,并能够保证按照一致的方式来引用和处理数据。通常情况下,现代的优化编译器产生的代码至少与下一个熟练的汇编语言程序员手工编写的代码一样有效。最大的优点是,用高级语言编写的程序可以在很多不同的机器上编译和执行,而汇编代码则是与特定机器密切相关的。

程序员必须用汇编代码来访问机器的低级特性。一种方法是,整个函数都用汇编代码来写,然后在链接阶段与C语言函数结合起来。第二种方法是在C语言程序中直接利用GCC对嵌入汇编代码的支持。我们把两种不同机器语言的浮点代码分别放在两个网络旁注中。

一、历史观点

Intel处理器系列俗称x86,经历了一个长期的、不断进化的发展过程。开始时它是第一代单芯片、16位微处理器之一,由于当时集成电路技术水平十分有限,其中做了很多妥协。此后,它不断地成长,利用进步的技术满足更高性能和支持更高级操作系统的需求。

8086:(1978年,29K个晶体管)它是第一代单芯片、16位微处理器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值