2010-12-13 34 views
1

我怎样写一个MIPS代码打印所有数字,大于10的阵列?MIPS,如何打印所有大于数字10

假设:

  • 阵列存在于存储器块;
  • 起始地址寄存器$t0;
  • 数组的大小是在寄存器$t1;

这是出现在我的期末考试审查表的问题之一,我不知道有关它。因此,我希望任何一个有MIPS的人都能帮助我解决这个问题。

+0

提示:你需要查找的MIPS汇编操作码补充登记,注册和常数,你如何比较和分支机构工作,如何有效地址的工作,如何加载数组的元素,了解如何调用的功能等printn或你有什么,包括如何传递一个参数给它。一种方法是用C编写它并将其编译为汇编器,然后研究汇编器。 – 2010-12-13 05:49:15

回答

0

如果这是你最后的考试学习表,那么你或许应该了解基本的语法已经,这么说,你需要初始化一个计数器的值,并设置在临时寄存器中的一个,说$ T2,你开始它在零。在执行结束时通过您的代码进行每次迭代:

bgt $t2, $t1, BEGINNING_OF_LOOP 

这会告诉您是否已通过阵列循环。您存储10个在寄存器中的一个,说$ T3,并通过阵列中的每个循环,你抢在$ T0的价值,一个单词的长度递增寄存器,并检查该值是否大于10:

lw $t4, $t0 
addi $t0, $t0, 4 
bgt $t4, 10, CODE_TO_PRINT_VARIABLE 

这应该让你在路上,但是你需要了解MIPS的基本知识才能回答这样的问题。如果你有时间,我建议你写出这个简短的程序。如果您至少可以看到一次控制结构的实际操作,它有助于巩固您的想法。希望这有帮助,祝你好运!