电子说
现在我们拿到了指令, 「前四位是操作码」 对应的是指令表中的LOAD A指令。对应的描述是**「将RAM的值放入寄存器A」**
「后四位1110是RAM的内存地址」 ,转成十进制就是14.
指令通过”控制单元“进行 「解码」 。解码的作用就是判断这个操作码对应的操作是什么(通过少量的逻辑门即可判断)
针对不同的操作码有对应的指令判断电路从而执行不同的操作。例如下面这个就是检查操作码是不是LOADA(0010)指令。
指令寄存器拿到数据DATA后通过控制单元进行解码,现在我们知道了这个是LOADA指令,就可以进行执行阶段了
上面解释的只是一个LOADA指令,「不同的指令由不同的逻辑电路解码,这些逻辑电路会配置CPU内的组件来执行对应操作。这些逻辑电路太复杂我们可以把整个逻辑电路封装为上面所说的控制单元。」
也就是下图中的线路。可以看到控制单元 「链接了所有的寄存器」 (用于存放和读取数字),和RAM链接的是 「允许读取和允许输入线」 (READ ENABLE WRITE ENABLE),还有一条线是**「ADDRESS INPUT」** ,这条线是用来告知使用的是16个地址空间中的哪个地址(比如之前的14)
上面解释了指令表中的LOADA指令,LOADB指令和LOADA原理一致,包括STOREB也是只不过是相反过来 「打开寄存器的允许读取和RAM的允许写入传入地址最后将寄存器的值通过DATA线给到RAM对应地址」 。但是ADD指令有些不同,我们看下这个操作码是如何做处理的。
全部0条评论
快来发表一下你的评论吧 !