计算机酷学(一)

本文介绍了计算机系统的基础,包括硬件和系统软件的组成,CPU的加载、存储、操作和跳转等基本操作。强调信息在计算机中以位和上下文的形式存在,以及程序如何通过预处理、编译、汇编和链接转化为不同格式。理解这些过程对于优化程序性能、避免安全漏洞和解决链接错误至关重要。
摘要由CSDN通过智能技术生成


       今天开始,我在此写点关于计算机系统的知识点,内容参考《深入理解计算机系统》,我觉得这本书还是很友好的,起码像我这样的计算机小白还是看得懂的( 虽然只看了一点)。

计算机系统组成

       说实话,计算机系统内部很复杂——我觉得,但是它可以概括为由硬件系统软件组成。
computer_system

CPU简单操作

  • 加载:从主存复制一个字节或者一个字到寄存器
  • 存储:从寄存器复制一个字节或者一个字到主存的某个位置
  • 操作:从两个寄存器中分别复制一个字的内容到ALU,ALU对这两个字做算术运算,并将结果存放到一个寄存器中
  • 跳转:从指令本身中抽取一个字,并将这个字复制到程序计数器(PC)中

信息就是位+上下文

       我们编写的程序、源文件等在计算机中就是由值为0和1组成的位序列。其中8个位被组织成一组,称为字节。其中只由ASCII字符构成的文件称为文本文件,其他文件称为二进制文件。
       区分不同数据对象唯一方法是我们读到这些数据对象时的上下文。因为系统中的所有信息都是由一串比特表示的,在不同的上下文中,一个同样的字节序列可能表示不同的含义,就像我们的中文一样。

程序被其他程序翻译成不同的格式

C源程序编译过程:
compilation_system
预处理阶段
       预处理器根据"#"开头的命令修改原始C程序

编译阶段
       编译器将.i文件翻译成.s文件

汇编阶段
       汇编器将.s文件翻译成机器语言指令,把这些指令打包成可成定向目标程序的格式,将结果保存在.o文件中。

链接阶段
       链接器将.o文件与标准库中的.o文件合并成可执行文件

了解编译系统如何工作的益处

优化程序性能
       有助于我们做出好的编码选择

理解链接时出现的错误
避免安全漏洞
       例如缓冲区溢出错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值