CPU是如何执行指令的(实例讲解)

一、CPU的主要功能

1、进行各种算数运算

2、进行各种逻辑判断

二、CPU是如何执行指令的

所谓的指令,都是要先加载到内存中,任何才能被CPU读取,并执行。

比如一个Java程序,写出来的是一个 .java 源代码文件,编译得到 .class 二进制文件(仍然是在硬盘上)。运行程序的时候,jvm就会把这个 .class 文件加载到内存中,再进一步翻译成 CPU能识别的二进制指令。

冯诺依曼体系结构规定:一个程序,指令和依赖的数据,都是要在存储器中保存的。CPU如果需要执行,都是要自动的从存储器中读取到对应的指令。

因此,CPU执行程序,大概经历以下三个阶段:

1、读指令(把内存中的指令数据,读取到CPU的寄存器中)

        CPU上也能存储数据,存储数据的模块就称为“寄存器”。速度比内存更快,但是存储空间更小,更贵。CPU的寄存器,往往就是几百个字节左右大小。

2、解析指令(理解当前指令要做什么)

3、执行指令

(上述讨论的是简化版模型,实际的CPU会更复杂)

三、CPU的指令表与指令执行

每个 CPU被设计出来的时候都会提供一个这样的指令表。

        所谓指令,即指导 CPU 进⾏⼯作的命令,主要有操作码 + 被操作数组成。 其中操作码⽤来表⽰要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是 寄存器编号等。指令本⾝也是⼀个数字,⽤⼆进制形式保存在内存的某个区域中。

        此处一个指令是8位的二进制数字,前四位用来区分这是一个什么样的指令,后四位是操作数。不同的指令有不一样的作用。

        表中的四位 opcode 就是 CPU 的操作码,用于区分是一个什么样的指令。

实例练习:

此处假设从0号地址开始执行。

        图中的三个箭头,从上到下依次代表着。取指令、解析指令、执行指令。        

        由于不是跳转指令,则顺延往下继续执行指令。如果遇到的是跳转指令再跳转到相应位置,执行指令。

        接下来的执行过程也是如图所示的一样,依次往下执行。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值