到目前为止,我一直使用寄存器$ s0- $ s9和寄存器$ t0- $ t9相同.我被告知并阅读了无数的论坛帖子和段落,并在Google上解释了这些差异,但没有编码示例.我被告知我应该看到它与使用程序有什么区别,但是我已经创建了无数个涉及程序的方案,试图找到保存的寄存器与临时寄存器之间的区别但是我失败了.
我想看一个相对简单的例子,其中$ t0-9寄存器与$ s0-9寄存器的作用不同,结果会产生不同的值?
我知道,只要我在MIPS中拥有一个具有四个以上参数的函数,就应该利用堆栈。但是,在下面的代码中,将第五个参数保存在sw $t0, 4($sp)并执行a之后jal sad,然后在sad函数的开头,我再次调整堆栈指针以保存$sx调用者使用的寄存器。我在这里做错什么了吗?
vbsme: subu $sp, $sp, 8 # create space on the stack pointer
sw $ra, 0($sp) # save return address
li $v0, 0 # reset $v0
li $v1, 0 # reset $v1
li $s0, 1 # i(row) = 1
li $s1, 1 # j(col) = 1
lw $s2, 0($a0) # row size
lw $s3, 4($a0) # col size
mul $s4, $s2, $s3 # row * col
li $s5, 0 …Run Code Online (Sandbox Code Playgroud)