1.代码到指令及计算机如何执行指令

CPU从硬件上是一个超大规模的集成电路,在我们软工设计师眼里CPU是一个执行各种计算机指令的逻辑机器,而计算机指令好比CPU能看懂的机器语言。

一个计算机的程序包括了很多的代码,这些东西如果一直待在CPU中只会影响CPU的运行速度,因此一般计算机指令(即一串串代码)平时存储在存储器中,需要计算时会调用到CPU中进行各种计算等等操作,这种计算机也叫存储程序型计算机(冯诺依曼体系结构)

早期计算机的纸带编程便是一种存储程序计算机的模型(程序存储在纸片上,程序由程序员用人脑译成对应的卡片)

我们平时用的C语言,Python等等高级语言,这样的代码进入电脑后会被程序翻译为汇编代码(从高级语言直接翻译到机器码,程序员也看不懂那些0.1代码,因此需要一个类似助记符一样的东西例如sum表示相加和来帮程序员理解)

汇编代码又有汇编器翻译为机器码(一大串的1.0代码,这才是CPU真正懂的代码,也称为计算机指令)

接下来理一下常见的指令有哪些:

1.算术类指令,常见的加减乘除等等,利用CPU的半加器,全加器

ps:全加半加还未完全懂,抽空去看一下

2.数据传输类指令,变量赋值,内存读写数据

3.逻辑类指令

4.条件分支类指令

5.无条件跳转指令

CPU是如何执行指令的

是一直顺序?还是各种跳转,这其中的原理是什么?

首先了解CPU内部

CPU由一堆寄存器组成(寄存器由触发器或者锁存器组成)【还没看到后续在数学电路课程学习中补充这内容】

N个触发器或者锁存器可以组成N位的寄存器,保存N位数据

然后是三种特殊的寄存器

1.PC寄存器,也叫指令地址寄存器(放下一条需要执行的指令的地址)

2.指令寄存器(放正在执行的指令)

3.条件码寄存器(存放CPU算术或逻辑运算的结果)

首先程序的指令的地址在内存中的保存是连续的,

在CPU中有个记录指令长度并根据长度执行指令的指令地址寄存器,执行完一条指令后,记录的长度会自加。

但是有些特殊的指令,如跳转指令,会修改指令地址寄存器内部的地址值,从而改变CPU的执行顺序。

在机器指令本质上goto指令与if-else与while与for在CPU内部是一样操作的,都是改变地址值来跳转特定指定位置

PS:写代码尽量不要用goto。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值