第三章 程序的机器级表示

3.1 历史观点

Intel 处理器系列俗称 x86, 经历了一个长期的、不断进化的发展过程。

从第一代单芯片、 16 位微处理器之一——8086开始,处理器分别从:

1.增加位数:16-32-64

2.增加寻址模式

3.扩展指令集

4.提高对浮点数的处理能力,引入SSE、AVX

5.逐渐支持超线程以及多核

等方面进化发展。

3.2 程序编码 

可使用gcc命令尝试阅读编译后.s文件中的汇编代码

gcc -Og -s test.c

使用objdump命令查看.o文件对应的反汇编代码,以及使用hexdump查看二进制文件

objdump -d test.out
hexdump -C test.out

GCC的默认是ATT汇编格式代码——与之前学习过的Intel代码格式不同:第三章 程序的机器级表示_第1张图片

 注:pushq中的后缀“q”指quad,即四字大小 16*4=64bit;同理,后缀b指byte,w指word,l指2word

3.2.1 X86 体系结构

可参照:

x86 体系结构 - Windows drivers | Microsoft Learn

下表为寄存器的发展,可对照8086的寄存器学习记忆

第三章 程序的机器级表示_第2张图片

3.2.2 x86-64汇编指令 

在此不多赘述,可参照x86 指令 - Windows drivers | Microsoft Learn

3.3控制

未完待续...

你可能感兴趣的:(《深入理解计算机系统》学习笔,1024程序员节)