自在飞花轻似梦,无边丝雨细如愁
文章目录
前言
唐朔飞老师中若是将某一个数存入到某一个寄存器中,存入的寄存器是不需要打括号的,
每一个指令先从宏观上分成两个部分,取指令和执行指令两个方面,而取指令所有的指令做的都是一样的,根据PC所指向的地址去内存中取出这个指令然后把这个指令放到IR寄存器中,执行阶段根据指令的功能不同,发出的控制信号以及硬件逻辑也就不同,
首先这类的题目需要站在更高维去分析,这是一个什么样的指令,以及这个指令要实现什么功能(关注操作码),一条指令无非是做什么,以及对谁做(也就是操作数在哪)以及这个操作数是存放在哪里(关注寻址方式,要么存放于主存要么存放于寄存器)。
给你一个硬件图,让你去描述一条指令执行过程中控制信号如何安排,若是遇到这样的题目,首先不要钻到硬件中,你需要站在一个更高的维度去分析这个指令的功能是什么,将指令分成两个部分取指阶段和执行阶段,
取指阶段首先根据PC指向的地址搞到IR中,给你一个硬件图,并告诉你下一个指令在PC中,那么如何放到IR中(首先将指令的地址放到MAR,然后根据MAR地址获取数据将其存放于MDR中,再从MDR把指令取到IR)注意取指阶段的自动加一也是需要给某一个部件发出一个控制信号,并不是自动完成的,容易遗漏
执行指令:你要问自己的第一个问题是操作数从哪来怎么取,有了这个操作数之后要对这个操作数进行什么样的运算,实现这个功能需要那些硬件部件,运算有了结果之后也需要将运算的结果存回某一个寄存器或主存,那么这个存的过程又要怎样做,