计算机是如何工作的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机是如何工作的相关的知识,希望对你有一定的参考价值。

一、视频内容:

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

硬件角度:

 技术分享

程序员角度:

 技术分享

寄存器:

 技术分享

寻址方式:

  寄存器寻址

  立即数寻址

  直接寻址

  间接寻址

  变质寻址

注意:

  由于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结构,循环指向下一条指令。

以上是关于计算机是如何工作的的主要内容,如果未能解决你的问题,请参考以下文章

Linux内核设计第一周学习总结 计算机如何工作

计算机网络重点梳理(根据B站up主codesheep视频内容整理而成)

传输视频的带宽如何计算?传输4K视频需要多少带宽?

如何在 PyQt 容器中运行视频?

计网 - 内容分发网络 : CDN 回源的工作机制初探

第一周 计算机是如何工作的