关于MIPS代码的问题

时间:2011-03-04 10:04:44

标签: mips

如何将以下内容写入MIPS指令?

  • $t0=$t1
  • if ($t6<$t7) go to Label.

3 个答案:

答案 0 :(得分:1)

$ t0不保留为零。 $ t0是一个临时寄存器,可以存储任何值。寄存器$ 0保留/硬连线为零。如果$ t6“小于”$ t7,我们希望“分支”到“标签”,所以在低于指令blt时使用分支。代码看起来像:

添加$ t0,$ 0,$ t1
blt $ t6,$ t7,标签

答案 1 :(得分:0)

假设寄存器已经加载了正确的数据。

因此对于$t2 = $t3,将$t3添加到注册零并将其存储在$t2中将会起作用,所以这就是它的样子:

add $t2,$t3,$t0 - 假设$ t0保留为零,就像大多数mips版本一样。

对于if $t4,我们需要一个分支语句,不知道你想要将它与之比较,但是看一下本指南 - 应该给出足够的说明如何编写它。

答案 2 :(得分:0)

你的垃圾:

  

$ T0 = $ T1

     

if($ t6小于$ t7)转到Label

将转换为MIPS,如:

  

移动$ t0,$ t1#或使用指令代替(添加$ t0,$ 0,$ t1)|(addi $ t0,$ t1,0)

     

slt $ t2,$ t6,$ t7#if $ t6less $ t7 set $ t2 = 1

     

bgtz $ t2,foo#if $ t2 = 0 goto foo,foo是你要移动的标签