0
点赞
收藏
分享

微信扫一扫

计算机酷学(一)

萧让听雪 2022-04-13 阅读 33
windows

学点计算机——计算机系统漫游一


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

计算机系统组成

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

CPU简单操作

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

信息就是位+上下文

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

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

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

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

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

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

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

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

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

举报

相关推荐

0 条评论