我想知道如何对MIPS Green Sheet中提到的基本指令格式进行编码,例如我想对指令add $t0 $t1, $t2进行编码。
我知道格式是R;操作码将是0x0;函数是0x20。
但是我如何获得rs,rt,rd和shamt的代码呢?
发布于 2018-11-19 13:33:01
应该是https://inst.eecs.berkeley.edu/~cs61c/resources/MIPS_Green_Sheet.pdf
如果您查看PDF第1页右下角的寄存器名称、编号、使用、调用约定框,您将看到名称为$t0到$t7的寄存器对应于编号为8到15的寄存器。有关您感兴趣的指令:
add $t0, $t1, $t2$t0是目标寄存器,由指令中的rd字段指定。由于$t0是寄存器编号8,因此将01000放入rd字段。
$t1和$t2是源寄存器,由指令中的rs和rt字段指定。由于$t1是寄存器编号9,而$t2是寄存器编号10,因此将01001放入rs字段,并将01010放入rt字段。
顺便说一句,这张绿皮书可以提醒你指令集的细节,但如果你刚刚开始使用https://www.cs.ucsb.edu/~franklin/64/lectures/mipsassemblytutorial.pdf架构,像MIPS这样的东西会更有帮助。
https://stackoverflow.com/questions/53363524
复制相似问题