计算机的工作过程

 计算机的工作过程,刚开始的时候(pc)=0,指向第一条指令地址

#1(pc)->(MAR)=0

#2 M(MAR)->MDR,导致(MDR)=000001     0000000101

#3(MDR)->IR,导致(IR)=000001      0000000101

#4  OP (IR)->CU,指令传给CU,CU分析得知,这是取数指令

#5   Ad(IR)->MAR, 指令地址传给MAR(MAR)=5

# 6M(MAR)->MDR,导致MDR=0000000000000010=2

#7(MDR)->ACC 导致(ACC)=000000000000010=2

取指令(#1~#3)

分析指令(#4)

执行取数指令(#6~#9)

pc会自动++,pc在取指令后就会++,也就是在#3完成后

第一条指令完成后a就完成了取数,并且进入了ACC

再完成#3后pc就会++所以pc就执行第二条语句,也就是主存地址为1的那条语句

操作码和地址吗分开,操作码传给CU,CU进行分析这是什么运算,地址码传给MAR,MAR,MAR在存储体中找到相应的6并且将这个地址的01传给MDR,MDR再传给ACC,这样ACC就接受了6的地址,并且ACC可以跟之前存过的a在经过CU的指令进行相乘,并且将ab相乘的值放到ACC中去

然后完成了#3后又可以继续进行下面的程序,pc就可以进行第三条指令,然后又可以将操作码传给CU控制单元,然后地址码再经主存储器传给ACC,然后在和上面的程序相加,再存到ACC中

然后完成了#3后又可以进行下面的程序,pc就得到了第四条指令,然后又可以将操作码传给CU控制单元,然后地址码再经主存储器传给ACC,然后再执行CU控制单元的操作。

然后完成了#3后又可以进行下面的程序,pc就可以执行第五条指令, 然后又可以将操作吗传给CU控制单元,然后地址码经主存储器传给ACC最后就,CU控制单元再操作,最后就停止了 

在C语言中完成想这么完成这么复杂的机器语言,只需要简单的几条语句

int a=2,b=3,c=1,y=0;

void   main ()

{

        y=a*b+c;

}

机器语言就是执行的这种二进制的数

由于机器语言晦涩难懂,所以产生了一些助记符,这些助记符比机器语言好记一点,但还是比较难懂所以产生了高级语言,

高级语言是对汇编语言进行了一次升级,C++在执行的时候会先把语句编译成汇编语言,然后汇编语言会翻译成机器语言,机器语言就是计算机可以直接执行的语言

像高级语言是可以直接进行编译的,还有一些语言是解释型的,像python,JavaScript这种,它们可以直接把机器语言解释成自己能看懂的语言。

两种类型的高级语言各有各的好处,不过我更倾向于C++这种可以直接编译的语言,直接编译的语言就像是给你一篇文章,让你写出它的翻译,你写在了纸上,你下一次还可以看到。

但是python这种语言是属于那种给你一篇文章,让一个人进行翻译,是直接说出来的,但是下一次要找的时候,就没了,需要再次让它来翻译一遍

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值