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
为非负,它就可以重新进入循环,从而简化循环,使其仅具有一个分支总数。