Assembly mips如何从循环打印数字

Assembly mips如何从循环打印数字,assembly,Assembly,这是我的 addi $s0, $0, 10 top: beq $s0, $0, end addi $s0, $s0,-1 addi $v0,$0,1 addi $a0,$s0,0 syscall j top end: 输出为9876543210 但我希望循环从10开始到0 109876543210初始化$s0为11而不是10。在系统调用后移动“计数器”以减去-1。这样,在运行循环后,您将减去计数器 ..

这是我的

      addi $s0, $0, 10

top:  beq $s0, $0, end

      addi $s0, $s0,-1
      addi $v0,$0,1
      addi $a0,$s0,0
      syscall
      j top

end:    
输出为9876543210 但我希望循环从10开始到0
109876543210

初始化
$s0
为11而不是10。

在系统调用后移动“计数器”以减去-1。这样,在运行循环后,您将减去计数器

  ...........
  syscall
  addi $s0, $s0,-1
  j top

谢谢,但是如果我假设用户将输入值,我的意思是如果我不知道s0的值,我怎么做如果用户输入N,并且您希望将N打印到0,则将$s0初始化为N+1。这将是10..1,而不是10..0。您还可以将循环分支更改为
bge$s0,$zero,top
,这样只要
$s0
为非负,它就可以重新进入循环,从而简化循环,使其仅具有一个分支总数。