计算机是如何工作的

本文深入解析了冯诺依曼体系结构,从硬件角度和程序员角度阐述了其核心原理,并详细介绍了寄存器、寻址方式等内容。通过C++代码实现汇编转换,展示如何将高级语言转换为底层指令,同时提供了实验代码和过程分析,最终总结了CPU执行流程,形象地比喻为循环结构。

一、视频内容:

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

硬件角度:

 

程序员角度:

 

寄存器:

 

寻址方式:

  寄存器寻址

  立即数寻址

  直接寻址

  间接寻址

  变质寻址

注意:

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

转载于:https://www.cnblogs.com/20132113tzy/p/5223813.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值