码迷,mamicode.com
首页 > 其他好文 > 详细

计算机是如何工作的

时间:2016-02-27 23:28:08      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

一、视频内容:

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

硬件角度:

 技术分享

程序员角度:

 技术分享

寄存器:

 技术分享

寻址方式:

  寄存器寻址

  立即数寻址

  直接寻址

  间接寻址

  变质寻址

注意:

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

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

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

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

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

  64位注意事项:

 技术分享

二、实验

c代码:

技术分享

汇编代码:

技术分享

 14         call          g

技术分享
三、过程分析

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

技术分享

技术分享

四、总结

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

计算机是如何工作的

标签:

原文地址:http://www.cnblogs.com/20132113tzy/p/5223813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!