CPU如何读取数据,执行命令

CPU如何读取数据?

如果取快递,我们会需要一个取件码,这个取件码对于CPU来说就是地址;

当地址为0x0001,CPU控制IBUS(代码总线)的电平使其呈现出现第一位为高电平,其他均为低电平,并且控制另外的读/写位为读,那么DBUS(地址总线)就会交出0x0001处的数据。

就像给了快递柜收件码,然后点取件,快递柜就会自动给出快递一样。

CPU写数据类似,不过使能写,就像点寄件一样。

CPU如何执行命令

我们可以取数据了,当然我们也可以取命令数据,以便CPU得知是用加法还是减法。类似取数据,我们也需要一个地址来取命令,这个地址一般由一个计数器给出。计数器从0x0000开始,不断增加。所以CPU从0x0000的地址开始取命令,然后从0x0001取命令,循环下去。。。

执行命令需要不仅需要命令,还需要数据。CPU会把第一个命令地址的数据当作操作命令,比如+,把第二个命令地址的数据当作数据1的地址,把第三个命令地址的数据当作数据2的地址。

比如命令地址的前三位里的数据为[0x0012,0x2000,0x2001],

  1. CPU读取到第一个地址数据为0x12,表示要做加法。
  2. CPU读取到第二个地址的数据为0x2000,表示为去0x2000的地方取数据,这里我们假设0x2000处的数据为1。
  3. CPU读取到第二个地址的数据为0x2001,表示为去0x2001的地方取数据,这里我们假设0x2001处的数据为2。

然后CPU就会计算得到1+2=3,那么3这个放到哪里呢,CPU会放到一个自己私有的地方先存着,以便之后需要的时候不用费劲去内存去拿了。

编程到底在编什么

  • 最初阶段

    由CPU的执行过程可知,编程需要做的就是从地址0x0000开始,写一些命令或者数据进去。

  • 汇编阶段

    后来有人用最初阶段的方法把add,[0x2000],[0x2001]这种文本数据解析成最初阶段的数据[0x0012,0x2000,0x2001]并写入存储器,成功执行。人可以写一些肉眼可见的操作了。

  • 高级语言
    再后来有人把1 + 2这种文本数据解析为把0x2000处的数据置为1mov,[0x2000],1,把0x2001处的的数据置为2mov,[0x2001],2,然后把这两个数相加add,[0x2000],[0x2001]

    有人把这个文本解析工具写出来,就叫做c语言的编译器,这些语法规范就叫做c语言。

再后来有人用C写了一个程序,这个程序可以解析1+2,但是不同与c的是,这个程序直接就显示1+2的结果到屏幕,而不是变成程序写入存储器执行。这个解析文本,并把结果直接显示出来,而不用重新写入到程序存储器的程序就叫做Python程序。

你可能感兴趣的:(CPU如何读取数据,执行命令)