1.冯诺依曼体系结构:也就是指存储程序计算机

  • 硬件(存储程序计算机工作模式)

Linux内核分析 计算机是如何工作的——by王玥

  • 软件(程序员角度):

Linux内核分析 计算机是如何工作的——by王玥

2.API:程序员与计算机的接口界面

   ABI:程序与CPU的接口界面

Linux内核分析 计算机是如何工作的——by王玥

3.X86的实现:

Linux内核分析 计算机是如何工作的——by王玥

4.X86 CPU的寄存器:

  • 所有E开头的寄存器一般来说都是32位的。
  • EBP:堆栈基址指针
  • ESP:堆栈顶指针
  • 32位通用寄存器:

Linux内核分析 计算机是如何工作的——by王玥

5.CPU在实际取指令时根据cs:eip来准确定位一个指令

Linux内核分析 计算机是如何工作的——by王玥

6.EFLAGS register标志寄存器

7.X86的32位寄存器和64位寄存器在核心机制上差别不大,前面带R的都是64位寄存器

Linux内核分析 计算机是如何工作的——by王玥

8.X86汇编指令:mov指令及几种内存寻址方式

  • movl代表32位
  • movq代表64位
  • 寄存器模式:以%开头的寄存器标识符
  • 立即数:以$开头的数值
  • 直接寻址:直接访问一个指定的内存地址的数据
  • 间接寻址:将寄存器的值作为一个内存地址来访问内存
  • 变址寻址:在间接寻址时改变寄存器的数值

Linux内核分析 计算机是如何工作的——by王玥

9.linux内核使用的是AT&T汇编格式

10.几个重要的汇编指令:push、pop、call、ret

11.函数调用堆栈是理解C代码在CPU上执行的关键。

12.eip寄存器不能被直接修改,只能通过特殊指令间接修改。

13Linux内核分析 计算机是如何工作的——by王玥可以被Linux内核分析 计算机是如何工作的——by王玥代替

14.Linux内核分析 计算机是如何工作的——by王玥

15.函数调用堆栈是由逻辑上多个堆栈叠加起来的。

16.函数的返回值默认使用eax寄存器存储返回给上一级函数。

 

相关文章:

  • 2021-10-22
  • 2021-12-30
  • 2021-10-22
  • 2021-06-26
  • 2022-02-05
  • 2021-06-04
猜你喜欢
  • 2022-01-31
  • 2021-07-11
  • 2021-07-19
  • 2021-07-24
  • 2021-11-19
相关资源
相似解决方案