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

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

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

  • 软件(程序员角度):

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

   ABI:程序与CPU的接口界面

3.X86的实现:

4.X86 CPU的寄存器:

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

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

6.EFLAGS register标志寄存器

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

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

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

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

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

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

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

13可以被代替

14.

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

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

 

posted on 2016-02-24 14:01  20135232  阅读(392)  评论(0编辑  收藏  举报