我想弄清楚如何对MIPS Green Sheet中提到的BASIC INSTRUCTION FORMATS进行编码
例如我想对指令add $t0 $t1, $t2
进行编码。
我知道格式为R;操作码将为0x0;函数0x20。
但是如何获取rs,rt,rd和shmtt的代码?
答案 0 :(得分:0)
问题中的链接已损坏。应该是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
字段
shamt
未在add
指令中使用,因此请用零填充该字段。
顺便说一句,Green Sheet很好地提醒了指令集的细节,但是如果您刚开始使用MIPS架构,则类似https://www.cs.ucsb.edu/~franklin/64/lectures/mipsassemblytutorial.pdf的方法会更有用。
>