我想使用功能进行添加。我使用 MIPS-Simulator 例如:函数中的a + b和a + c。 我的代码如下:
.data
x:.word 5
y:.word 2
k:.word 9
nl:.asciiz" \ n"
的.text
.globl main
主要:
addi $ sp,$ sp,-12
sw $ ra,0($ sp)
sw $ s0,4($ sp)
sw $ s1,8($ sp)
jal C
移动$ s0,$ v0#我的期望= 在 s0 中保存 $ v0 的值,同时 7
移动$ s1,$ v1#我的期望= 在 s1 中保存 $ v1 的值,同时 14
li $ v0,1#打印值$ s1
移动$ a0,$ s0#我的期望没有实现:(
系统调用
li $ v0,4
la,$ a0,nl#只是换行符
系统调用
li $ v0,1#打印值$ s1
移动$ a0,$ s1#我的期望没有实现:(
系统调用
li $ v0,10
系统调用
lw $ ra,0($ sp)
lw $ s0,4($ sp)
lw $ s1,8($ sp)
addi $ sp,$ sp,12
jr $ ra
C:
addi $ sp,$ sp,-12
sw $ ra,0($ sp)
sw $ t1,4($ sp)
sw $ t2,8($ sp)
lw $ t1,x
lw $ t2,y
jal A
移动$ v0,$ v0#结果将 7 并保存在 $ v0 中,因为 x + y = 5 + 2 = 7 < /强>
li $ v0,0
lw $ t1,x
lw $ t2,k
jal A
移动$ v1,$ v0#结果将 14 并且还会保存在 $ v1 中,因为 x + k = 5 + 9 = 14
lw $ ra,0($ sp)
lw $ t1,4($ sp)
lw $ t2,8($ sp)
addi $ sp,$ sp,12
jr $ ra
A:#这里将是一个附加功能
添加$ v0,$ t1,$ t2
jr $ ra
功能 A和C 已设置且无法删除,因此功能A 注册 $ v0 它也已经设定好了。当我运行我的代码时,结果将是:
14
14
应该产生价值:
7
14
问题:我做了什么?我的代码中缺少什么?
P.S:要更清楚地理解,请在我的代码中查看我的评论。