计算机是如何工作的

一、视频内容:

冯诺依曼体系结构:存储程序计算机

硬件角度:

 计算机是如何工作的_第1张图片

程序员角度:

 计算机是如何工作的_第2张图片

寄存器:

 计算机是如何工作的_第3张图片

寻址方式:

  寄存器寻址

  立即数寻址

  直接寻址

  间接寻址

  变质寻址

注意:

  由于eip不能被程序员直接修改,所以(*)不能直接使用

  函数调用堆栈是有逻辑上多个堆栈叠加起来的

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

  大部分x86指令可以直接访问内存地址

  ATT汇编格式与intel汇编格式略有不同,linux内核使用的是ATT汇编格式

  64位注意事项:

 

二、实验

c代码:

计算机是如何工作的_第4张图片

汇编代码:

 14         call          g

计算机是如何工作的_第5张图片
三、过程分析

从main开始执行,执行到call f的时候 EIP=下一条指令的地址=23,如图5,接下来执行代码块f,执行到第15条指令到达 leave(即movl %ebp,%esp,popl %ebp),最后main的ret把CPU让给其他的程序

计算机是如何工作的_第6张图片

计算机是如何工作的_第7张图片

四、总结

 CPU中的IP寄存器指向内存中的某代码段,CPU执行完当前IP指向的指令后,IP寄存器加一取下一条指令,CPU再去执行。代码角度可理解为CPU中有一个for结构,循环指向下一条指令。

你可能感兴趣的:(计算机是如何工作的)