计算机系统第三章程序的机械级表示笔记(1)

简介: 这篇文章是关于计算机系统第三章“程序的机械级表示”的笔记,解释了计算机如何执行机器代码,编译器如何生成机器代码,以及理解机器代码对于程序员在优化代码、分析程序运行时行为和安全性方面的重要意义。

计算机系统第三章程序的机械级表示笔记

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

2、编译器基于编程语言的规则、目标机器的指令集(cpu类型)、操作系统遵循的惯例(软件层面)生成机器代码

3、其中GCC是c语言的编译器,输入源码输出汇编代码

4、编译器可以调用汇编器和链接器根据输入的汇编代码生成可执行的机器代码

(2)在编译器承担了生成汇编代码的大部分工作,我们学习机器代码的意义:

  1. 阅读和理解汇编代码依然是一位严谨的程序员的一项很重要的技能。
  2. 通过直接阅读编译器生成的汇编代码,我们能理解编译器的优化能力,并分析代码中隐含的低效率。
  3. 高级语言提供的操作层会隐藏我们想要了解的程序的运行时行为。比如:线程包写并发程序时候,想要准确知道在哪里访问共享数据。程序遭受攻击时候,很多都涉及程序存储运行时控制信息的方式的细节,想要了解这些漏洞如何产生,如何防御,需要具备机器级表示的知识。

3.2程序编码
3.2.1机器级代码:
计算机系统使用了多种不同形式的抽象模型来隐藏实现的细节。
第一种指令集体系结构或指令集架构

相关文章
|
4月前
|
存储 编解码 并行计算
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
79 0
|
4月前
|
存储 人工智能 缓存
计算机架构:漫游CPU的奥秘世界(一)
计算机架构:漫游CPU的奥秘世界
114 0
|
4月前
|
存储 人工智能 并行计算
计算机架构:漫游CPU的奥秘世界(二)
计算机架构:漫游CPU的奥秘世界
126 0
|
12月前
信息的表示与处理 (深入理解计算机系统第二章)(下)
信息的表示与处理 (深入理解计算机系统第二章)(下)
69 0
|
12月前
|
存储 Linux Windows
信息的表示与处理 (深入理解计算机系统第二章)(上)
信息的表示与处理 (深入理解计算机系统第二章)(上)
42 0
|
存储 算法 程序员
[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)
[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)
|
存储 前端开发 rax
深入理解计算机系统-第3章程序的机器级表示笔记
计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理内存、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的规则、目标机器的指令集和操作系统遵循的惯例,经过一系列阶段生成机器代码。
125 0
|
存储 Java 程序员
程序员需要了解的硬核知识之控制硬件(一)
我们作为程序员一般很少直接操控硬件,我们一般通过 C、Java 等高级语言编写的程序起到间接控制硬件的作用。所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 全权负责的。
116 0
程序员需要了解的硬核知识之控制硬件(一)
|
存储 运维 Java
程序员需要了解的硬核知识之控制硬件(二)
我们作为程序员一般很少直接操控硬件,我们一般通过 C、Java 等高级语言编写的程序起到间接控制硬件的作用。所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 全权负责的。
113 0
程序员需要了解的硬核知识之控制硬件(二)