计算机运行简单程序的过程

本文通过举例和指令表示的方式详细阐述了计算机如何运行一个简单的数学表达式,包括从主存储器取数、累加器中的运算、存数指令、乘法和加法操作,以及冯·诺依曼计算机结构中指令和数据共存的特点。
摘要由CSDN通过智能技术生成

举例

ax2+bx+c
操作数:运算中,一个保存在累加器中,另一个来自主存储器
用到的指令:加法指令、乘法指令、取数指令、存数指令、打印指令、停机指令

过程:
假设a、b、c、x都存放在了主存储器中
①取x至运算器的累加器中
②取内存中的数据乘以x,存放在累加器中,得到x2
③乘以a,存放在累加器中,得到ax2
④利用存数指令,将ax2存放在存储器中
⑤利用取数指令,将b放到运算器中
⑥乘以x,存放到运算器中,得到bx
⑦加ax2,放在运算器中,得到ax2+bx
⑧加c在运算器中

将式子变形:(ax+b)x+c
①取x至运算器的累加器中
②乘以a在运算器中
③加b在运算器中
④乘以x在运算器中
⑤加c在运算器中

 

用指令表示

指令格式:
指令=操作码+地址码
取数指令如下:
在这里插入图片描述
ACC代表累加器
[ ]代表寄存器中的内容,内存单元的内容
“000001”(前6位)代表操作码,要做什么操作(加减乘除等)
“0000001000”(后10位)代表地址码,数据在哪个内存单元中
在这里插入图片描述
上图指令同样也是二进制形式(未表示出来),同样是 “操作码+地址码” 的形式

那么上面的例子就可以用指令来表示:
在这里插入图片描述
第一列:
指令、数据在主存单元的地址。
这正是冯·诺依曼计算机的特点,指令和数据以同等地位存放在存储单元中。
第二列:
0~7行,代表指令,8-11代表数据,12行存放结果。无论是指令、数据还是结果,都是用二进制表示。
过程:
第0行,000001取数指令,地址0000001000(为十进制数8)。也就是在地址8(对应第8行)找到数据x放到ACC中。
第1行,000100乘法指令,要乘的数据在0000001001(十进制数9)。也就是去地址9(对应第9行)找到a做乘法操作,存于ACC中。
以此类推…

不要忘记,指令和数据都要存放在存储器中,那么自然而然就会想到:存储器的结构应该是什么样的?又该怎么访问?每次访问获得多少数据?等等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值