有没有办法在MIPS中通过自修改创建一个计数器?

Is there any way to create a counter by self-modifying in MIPS?

我想创建一个这样的子程序:

但我们不应该使用寄存器和内存来保存当前号码。我们必须通过更改代码(自修改)来解决这个问题。 有什么办法吗?

这是我找到的解决方案:

# subroutine
nextInt:                    # return value is in $v0
add     $v0,$zero,0
la      $t0,nextInt         # load subroutine address
lw      $t1,0($t0)          # load content of address
addi    $t1,$t1,1           # change content (increment)
sw      $t1,0($t0)          # save
jr      $ra