首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIPS - Revision这个程序到底做什么?

MIPS - Revision这个程序到底做什么?
EN

Stack Overflow用户
提问于 2012-04-19 17:42:56
回答 2查看 158关注 0票数 1
代码语言:javascript
复制
            .text
      main:  la    $a0, A #loads address of A into $a0
             li    $t0, 1 #loads 1 into $t0
             sw    $t0, ($a0) #stores word from $a0 into $t0
             li    $t0, 2 #loads 2 into $t0
             sw    $t0, 4($a0)
             li    $t0, 3
             sw    $t0, 8($a0)
             li    $t0, 4
             sw    $t0, 12($a0)

             la    $a1, A
             li    $v0, 1
             lw    $a0, ($a1)
             syscall
             lw    $a0, 4($a1)
             syscall
             lw    $a0, 8($a1)
             syscall
             lw    $a0, 12($a1)
             syscall
             la    $a0, tab
             li    $v0, 4
             syscall      
             li    $v0, 10
             syscall    

            .data
         A: .space 16 #array size 16
       tab: .asciiz "\t" #makes line indentation
#stores 1 - 4 into $t0

在我看来,它将A的地址加载到a0中,然后将'1‘加载到$t0中,然后通过将数组存储到其中来重写?!?$t0。然后将2加载到$t0中,然后我不确定4应该做什么(就我所见,不做任何事情,然后将$t0加载到3中,然后与'4’相同。不知道8做了什么,然后将4加载到$t0中,然后对12执行某些操作,然后将A的地址加载到$a1中,并打印出来?!?我对这个程序的其余部分完全迷失了。程序是正确的(加载"1234"),但我应该通过理解每个课程讲师给出的程序来学习MIPS。这不是家庭作业,只是学习MIPS程序是如何工作的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-20 00:50:28

程序首先存储从A地址开始的常量1,2,3,4,然后它只打印这四个字的内容。

指令sw reg1, offset(reg2)将寄存器reg1的内容存储到reg2指向的地址加上指定的可选偏移量。

因此,在您的第一个示例中,sw $t0, ($a0)将把$t0的内容存储在$a0所指向的地址中,在您的示例中,该地址是标签A的地址。

然后它使用4的倍数作为偏移量,因为您存储的是字,而每个字恰好占用4个字节,因此要存储连续字的数字1、2、3、4,必须将4加到每个先前的地址。

票数 2
EN

Stack Overflow用户

发布于 2012-04-20 00:01:13

它看起来像是一个展开的循环。第一个循环设置数组的内容,第二个循环打印出数组的内容,后跟一个制表符。下面是我假设的伪代码:

代码语言:javascript
复制
function main()
{
  i = 1
  while( i <= 4 )
  {
    A[i-1] = i
    i = i + 1
  }

  i = 1
  while( i <= 4 )
  {
    printToConsole( A[i-1] )
    i = i + 1
  }
  printToConsole( tab )
}

当代码被汇编时,汇编程序可能会展开循环以提高性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10225455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档