理解机器指令运行的

理解机器指令运行的高手请进
mips机器指令   1000010010100000000100000
                         
对应的汇编指是     add   $t0,$t0,$t1       ($t0 <-$t0+$t1)
如何用c语言来解析上面的机器指令,其中要具体的说明此机器指令的运行,即32位寄存器以及内存(4kb)的变化

本人的   c语言水平有限,但是任务比较急,希望各位高手给点帮助
谢谢

------解决方案--------------------
#define NOP 0x00000000 // 32 'b xxxx_0000_0000_0000_0000_0000_0000_0000
#define NOP_MASK 0x0fffffff
#define AND 0x00200000 // 32 'b xxxx_00x0_001x_xxxx_xxxx_00xx_xxxx_xxxx
#define AND_MASK 0x0de00c00

#define IS_NOP(i) ((i&RICE_MASK)==(NOP&NOP_MASK))
#define IS_AND(i) ((i&AND_MASK)==(AND&AND_MASK))

这是我们公司MIPS处理器的NOP和ADD检测方法

对照instruction bit map应该很好做的
------解决方案--------------------
比如说指令中32位中的后四位代表中间那个寄存器$t0
你可以:
long opcode=0 'b 1000010010100000000100000
if IS_ADD(opcode)
{
int src;
src=opcode&0xf;
对应的src就是寄存器的t0
目标寄存器是第8到12位:
int dst;
dst=(opcode > > 8) &0xf;
}