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

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

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

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

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

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

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

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

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

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

相关文章
|
9月前
|
存储
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】五、单总线CPU设计(理论版) 【计算机硬件系统设计】
1059 2
|
9月前
|
数据处理 计算机视觉 芯片
【头歌·计组·自己动手画CPU】二、运算器设计(讲解版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】二、运算器设计(讲解版) 【计算机硬件系统设计】
208 2
|
9月前
|
存储 人工智能 BI
【头歌·计组·自己动手画CPU】二、运算器设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】二、运算器设计(理论版) 【计算机硬件系统设计】
667 1
|
9月前
|
存储 算法 索引
【头歌·计组·自己动手画CPU】三、存储系统设计(HUST)(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】三、存储系统设计(HUST)(理论版) 【计算机硬件系统设计】
833 1
|
9月前
|
存储
【头歌·计组·自己动手画CPU】四、控制器设计(理论版) 【计算机硬件系统设计】
【头歌·计组·自己动手画CPU】四、控制器设计(理论版) 【计算机硬件系统设计】
344 0
信息的表示与处理 (深入理解计算机系统第二章)(下)
信息的表示与处理 (深入理解计算机系统第二章)(下)
85 0
|
存储 Linux Windows
信息的表示与处理 (深入理解计算机系统第二章)(上)
信息的表示与处理 (深入理解计算机系统第二章)(上)
61 0
|
存储 算法 程序员
[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)
[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)
|
算法 编译器 数据格式
计算机组成原理/计算机硬件基础 第四章
计算机组成原理/计算机硬件基础 第四章
265 0
计算机组成原理/计算机硬件基础 第四章
|
存储 固态存储 数据安全/隐私保护
计算机组成原理/计算机硬件基础第五章:存储器
计算机组成原理/计算机硬件基础第五章:存储器
509 0
计算机组成原理/计算机硬件基础第五章:存储器