运算器

最基本功能:完成运算

核心:ALU(算逻运算单元),通常是一个组合电路,其特点是:若输入撤销那么响应的输出结果也相应的撤销了。

(1)加法操作过程

刚开始我们的加数保存在内存单元地址为M的内存单元当中,初始状态被加数已经存放到ACC(累加器)里,假设我们已经完成了取数操作,接下来进行的操作是:将M内存单元里面的内容取出来放到[M]->X寄存器里,然后通过算逻运算单元ALU完成加法操作,[ACC]+[X] —>[ACC],其相加的结果和保存在ACC中

如图所示:

(2)减法操作过程

跟加法操作过程类似,刚开始我们的减数保存在内存单元地址为M的内存单元当中,初始状态被减数已经存放到ACC(累加器)里,假设我们已经完成了取数操作,接下来进行的操作是:将M内存单元里面的内容取出来放到[M]->X寄存器里,然后通过算逻运算单元ALU完成加法操作,[ACC]+[X] —>[ACC],其相加的结果和保存在ACC中

如图所示:

(3)乘法操作过程

乘法操作需要用到三个寄存器(ACC、MQ、X),其实一开始我们输入被乘数的时候,被乘数是存放在ACC中的,按照规定我们要将被乘数放到寄存器X中,于是就有了这样一个操作:[ACC]—>X,同加减法一样,刚开始我们的乘数保存在内存单元地址为M的内存单元当中,将M内存单元里面的内容取出来放到[M]->MQ寄存器里,然后进行乘法运算(现将ACC里面的值清零0—>[ACC],因为结果要放在ACC中):[X]*[MQ]—>ACC//MQ,乘积高位存放在ACC中,乘积低位存放在MQ中。先不着急往下看,我们注意到上述操作有些是按一定的顺序来的,比如说:我们一定实现将被乘数从ACC中取出放到寄存器X中,才可以将ACC里面的内容清空。这些保证指令按序进行都是控制器控制的

示意图:

(4)除法操作过程

除法操作同乘法操作类似,也要用到三个寄存器(ACC、MQ、X),刚开始我们的乘数保存在内存单元地址为M的内存单元当中,将M内存单元里面的内容取出来放到[M]->X寄存器里,被除数放在寄存器ACC当中,[ACC]%[X]—>MQ,其结果存放在寄存器MQ当中,余数保存在ACC当中。

示意图:

总示意图:

猜你喜欢

转载自blog.csdn.net/szlg510027010/article/details/82846696