MIPS架构数据访问

时间:2015-10-30 13:13:52

标签: mips

我遇到了MIPS架构的问题。

我需要为这段代码计算代码大小和数据访问权限。 我知道

  

操作码= 1个字节

     

内存地址长度= 2个字节长度

     

所有数据操作数= 4个字节长度

我的代码解决了这个等式:y =(A-B)/(C + D * C)

LD $S1, d($t1)
LD $S2, e($t1)
MPY $S1,$S2,$S1
LD $S2,C($T1)
ADD $S1,$S2,$S1
LD $S2, a($tS1)
LD $S3 ,b($t1)
SUB $S2,$S2,$S3
DIV $S1,$S2,$S2
ST Y($T1),$S1`

1 个答案:

答案 0 :(得分:0)

要做的第一步是检查哪些是“真实指令”,哪些是伪指令。

编译代码时,请按说明操作 例如,从here您可以在MIPS中找到完整的说明列表,从here您可以找到伪指令列表。

在您的代码中,您可以找到真实指令ADD & SUB,每个32位。

我认为你的MPY代表MUL,这又是一个真实的指令,所以再次是32位。

DIV是由两个赋值形成的指令(一个用于余数的商1),所以64位。

我想,根据您的代码和您的意思,LD代表LB,这是一个单行指令,32位。

给出这些假设,

LD $S1, d($t1)      32 bit
LD $S2, e($t1)      32 bit
MPY $S1,$S2,$S1     32 bit
LD $S2,C($T1)       32 bit
ADD $S1,$S2,$S1     32 bit
LD $S2, a($tS1)     32 bit
LD $S3 ,b($t1)      32 bit
SUB $S2,$S2,$S3     32 bit
DIV $S1,$S2,$S2     64 bit
ST Y($T1),$S1       32 bit

我不确定我的假设,但如果它们不正确,那么无论如何都是找到代码大小的正确方法。