美文网首页
CSAPP 第二章 机器级表示

CSAPP 第二章 机器级表示

作者: 月月与 | 来源:发表于2020-09-10 17:05 被阅读0次

x86处理器的历史;
摩尔定律,每18个月翻一倍;但近年来,半导体产业步入后摩尔时代;
C程序源代码转化成可执行代码过程:
1.C预处理器扩展源代码,插入所有#include命令指定的代码,扩展所有#define声明指定的宏。

gcc -E hello.c -o hello.i
cat hello.i

通过“替换”伪指令:宏定义指令、条件编译指令、头文件包含指令、特殊符号(如LINE,FILE标识符),生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。

  1. 编译器产生两个源文件的汇编代码,*.s文件。
gcc - S hello.i -o hello.s
cat hello.s

编译过程就是把预处理完的文件进行一系列的词法分析、语法分析、语义分析以及优化。
优化阶段:优化处理是编译系统中一项比较艰深的技术。优化过程不仅与编译技术本身有关,还与特定机器的硬件环境也有很大的关系。第一类型的优化,主要的工作是删除公共表达式、循环优化(代码外提、强度削弱、变换循环控制条件、已知量的合并等)、复写传播,和无用赋值的删除等。第二种类型的优化同机器的硬件结构密切相关,最主要的是考虑如何充分利用机器的各个硬件寄存器存放的有关变量的值,以减少内存的访问次数。同时考虑指令并行缩减执行时间,流水线、指令集架构等。
3.汇编器将汇编代码转化成二进制目标代码,*.o文件。

gcc -c hello.c -o hello.o
cat hello.o

目标代码是机器代码的一种形式,它包含所有指令的二进制表示,但是还没有填入地址的全局指。
4.链接器将目标代码文件和实现库函数的代码合并,并产生最终的可执行文件。

两种抽象:指令集架构ISA、虚拟地址空间

分支预测逻辑来猜测每条跳转指令是否会执行,只要它的猜测还比较可靠(现代微处理器设计试图达到90%以上的成功率),指令流水线中就会充满着指令;但是错误预测会招致很严重的惩罚,浪费大约15~30个时钟周期(书中时间),导致程序性能严重下降。

Architecture ISA:instruction set architecture
Microarchitecture:Implementation of the architecture(cache sizes and core frequency eg)
Code Forms:Machine Code\Assembly Code

过程调用时寄存器空间不够后才使用栈帧,并不是所有的都需要栈帧;

GDB调试技巧;

objdump -d bomb > obj.txt
gdb bomb

相关文章

  • CSAPP 第二章 机器级表示

    x86处理器的历史;摩尔定律,每18个月翻一倍;但近年来,半导体产业步入后摩尔时代;C程序源代码转化成可执行代码过...

  • data lab

    data lab是对应于csapp第二章——信息的表示与处理对应的实验。在限定操作符和操作次数的前提下,使用位级运...

  • 《深入理解计算机系统》实验一 —Data Lab

    本文是CSAPP第二章的配套实验,通过使用有限的运算符来实现正数,负数,浮点数的位级表示。通过完成这13个函数,可...

  • 《深入理解计算机系统》实验二 —— Bomb Lab

    这是CSAPP的第二个实验,主要让我们理解代码的机器级表示,最重要的是理解每个寄存器的作用以及如何使用这些寄存器。...

  • CSAPP 第三章 程序的机器级表示

    序言 汇编代码是机器代码的文本表示,与高级语言编写的程序不同,它跟跟机器平台结合紧密。 在超过50年中,半导体工业...

  • CSAPP阅读笔记-第三章:程序的机器级表示

    章节开头导语部分 GCC C语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指...

  • CSAPP数字表示

    1、无符号数、有符号数、补码 C 语言是支持多种整型数据类型的,下面我们看一下在 32 位机器和 64 位机器中,...

  • 程序的机器级表示

    在计算机系统中,程序的运行离不开CPU、内存等之间的协作。而在CPU中, 其内部的寄存器起到了十分重要的作用,有...

  • 程序的机器级表示

    计算机系统使用了多种不同的抽象,利用简单的抽象模型来隐藏实现的细节。对于机器级编程来说,其中两种抽象尤为重要。第一...

  • 程序的机器级表示

    本文是对《深入理解计算机系统》第3章的一些总结。 什么是机器级程序机器级程序只是一系列的字节序列,由多条指令组成,...

网友评论

      本文标题:CSAPP 第二章 机器级表示

      本文链接:https://www.haomeiwen.com/subject/eqsjektx.html