文章目录
1.MIPS指令运行基础结构:
由于MIPS指令的格式跟X86指令的格式相似,我们可以把它看成是在如图所示的结构中运行的:
MPIS指令只对寄存器进行操作我们可以考虑忽略存储器;
2.加法运算示例:
1.加法指令编码(纯手工(ಥ _ ಥ)):
2.加法运算:
控制电路:发出指令;
指令编码:解读指令;
CPU通过读取址,将指令编码存放在IR寄存器中;
1.指令译码读取opcode后知道了是R型指令,再根据funct型的值分析出是add指令;
2.控制电路会向ALU发出信号,指明接下来将进行加法运算;
3.解读出rs、rt对应的寄存器、控制电路会选出对应的源操作数,将其内容传送到ALU的输入;
4.同时指令译码会解读出rd对应的寄存器,并将ALU的输出联通到相应的寄存器中;
5.ALU会根据控制电路给出的信号将两个输入的源操作数进行加法运算,并将运算结果保存在相应的寄存器中;
6.运算完成。
3.算术运算指令:
1.R型指令:
特点:源操作数都是在寄存器中;
2.I型指令:
源操作数时立即数(立即数是16位的)而源操作数是32位的:
那么16位如何转化为32为指令呢?
转换的方法:
addiu在运算中溢出时不会产生异常;
4.逻辑运算指令:
1.对于立即数的处理:
含有立即数时,最高位的填充全是0;因为它不像是算术运算指令有正负号的运算;